bonjour,
je souhaitais valider un chaine de carateres a l'aide de regex.
le format de ma chaine doit etre strinctement
(chaine de caracteres sans espaces, un espace,un point-virgule (et rien d'autre)
Code : Sélectionner tout - Visualiser dans une fenêtre à part "[A-Z 0-9 a-Z] ;"
par exemple :
OK
NOK
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 "1aX ;" "a ;" "a222aaaA ;"
NOK
Code : Sélectionner tout - Visualiser dans une fenêtre à part "1a"
NOK
Code : Sélectionner tout - Visualiser dans une fenêtre à part " 1a"
NOK
Code : Sélectionner tout - Visualiser dans une fenêtre à part "1a ;az; "
Code : Sélectionner tout - Visualiser dans une fenêtre à part "1a ; az; "
ect ect
ma fonction doit retourner 1 si c'est bon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 int err; int match; int a = 0; regex_t preg; const char *str_regex = "(^[[:alnum:]]+ ;)" const char *str_request = "2X ;"; err = regcomp (&preg, str_regex, REG_NOSUB | REG_EXTENDED); if (err == 0) { match = regexec (&preg,str_request, 0, NULL, 0); regfree (&preg); if (match == 0){ a = 1; printf("%d",a); return 1; } printf("%d",a); }
si je tapeelle retourne 1 alors que c'est NOK
Code : Sélectionner tout - Visualiser dans une fenêtre à part "1X ; a"
je veux pas uniquement savoir si elle a trouver un motif dans ma chaine, je veux savoir si la chaine correspond exactement au motif
comment faire ?
merci
Partager