Ho questo URL http://localhost:64685/Forum/Runner/runner_job/24af786e
Mi piacerebbe il regex
per verificare se l'url ha un /
seguito da 8 lettere o numeri (come nell'URL) alla fine dell'URL.
questo è il mio miglior tentativo finora, e so che non è corretto o corretto: /[^/A-Z]{9}/g
Qualcuno potrebbe guidarmi nella giusta direzione?
modificare
Come gestisco la regex,
Regex regex = new Regex(@"//[^W_]{8}$/");
Match match = regex.Match(url);
if (match.Success)
{
url.Replace(match.Value, "");
}
risposte:
2 per risposta № 1Uso
Regex regex = new Regex(@"/[^W_]{8}$");
// Or, to make it match only ASCII letters/digits:
// Regex regex = new Regex(@"/[^W_]{8}$", RegexOptions.ECMAScript);
url = regex.Replace(url, "");
Non è necessario controllare la corrispondenza prima di sostituirla con un'espressione regolare. Nota che hai usato un String.Replace
metodo, non a Regex.Replace
uno e non ha assegnato il nuovo valore a url
(le stringhe sono immutabili in C #). Vedere il regex demo.
Dettagli:
/
- un letterale/
[^W_]{8}
- esattamente 8 lettere o cifre ([^W_]
corrisponde a un carattere diverso da una non parola (W
) e_
caratteri)$
- fine della stringa.
Passa il RegexOptions.ECMAScript
opzione se è necessario abbinare solo lettere / cifre ASCII.