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)

par exemple :
OK
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
"1aX ;"
"a ;"
"a222aaaA ;"
NOK
NOK
NOK
NOK


ect ect

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);
                    }
ma fonction doit retourner 1 si c'est bon.

si je tape elle retourne 1 alors que c'est NOK
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