Je me suis cogné la tête contre le mur en essayant de faire ce qui devrait être une simple expression régulière - je dois faire correspondre, par exemple 12po
où le 12
la partie peut être composée d'un ou deux chiffres, puis d'un caractère non alphanumérique facultatif comme un :.-,_
etc, puis la chaîne po
.
L'utilisation éventuelle va être dans C#
mais j'aimerais qu'il fonctionne également en grep
normal sur la ligne de commande. Je n'ai pas accès à C#
, ce qui n'aide pas.
^[0-9]{1,2}[:.,-]?po$
Ajoutez tout autre caractère non alphanumérique autorisé entre parenthèses pour permettre également leur analyse.
^\d{1,2}[\W_]?po$
\d
définit un nombre et {1,2}
signifie 1 ou deux de l'expression avant, \W
définit un caractère non Word.
^[0-9][0-9]?[^A-Za-z0-9]?po$
Vous pouvez le tester ici: http://www.regextester.com/
Pour l'utiliser en C #,
Regex r = new Regex(@"^[0-9][0-9]?[^A-Za-z0-9]?po$");
if (r.Match(someText).Success) {
//Do Something
}
N'oubliez pas que @ est un symbole utile qui signifie que l'analyseur prend la chaîne à la lettre (par exemple, vous n'avez pas besoin d'écrire \\ pour une barre oblique inverse)