5 réponses
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
130
29 nov. 2009 à 18:01
29 nov. 2009 à 18:01
Bonjour,
Peux-tu décrire ce que tu cherches à obtenir avec cette RE, stp.
Je suppose que les / initial et final ne font pas partie de la RE.
Ton intention est-elle que le carret ^ ait sa signification d'exclusion ?
Peux-tu décrire ce que tu cherches à obtenir avec cette RE, stp.
Je suppose que les / initial et final ne font pas partie de la RE.
Ton intention est-elle que le carret ^ ait sa signification d'exclusion ?
Bah je voudrais que toutes les lettres (avec accents aussi) soient autorisées, ainsi que les parenthèses, le . le ' et la virgule.
En fait j'utilise une fonction qui me permet d'exec mes différents regex.
Bout de code :
function choixRegex($typeControle)
{
switch ($typeControle)
{
case "lettresAccents":
$regex = "/^([- a-zA-Zéèëêäâàùüûîïÿöôœç]+)$/";
break;
case "username":
.......
Après je fais un preg_match de choixRegex pour effectuer mes différents controles.
Ex:
if(!preg_match(choixRegex('lettresAccents'),$value))
{....}
Voilà, j'espère avoir été plus clair :s
En fait j'utilise une fonction qui me permet d'exec mes différents regex.
Bout de code :
function choixRegex($typeControle)
{
switch ($typeControle)
{
case "lettresAccents":
$regex = "/^([- a-zA-Zéèëêäâàùüûîïÿöôœç]+)$/";
break;
case "username":
.......
Après je fais un preg_match de choixRegex pour effectuer mes différents controles.
Ex:
if(!preg_match(choixRegex('lettresAccents'),$value))
{....}
Voilà, j'espère avoir été plus clair :s
stephane_mc2004
Messages postés
755
Date d'inscription
samedi 12 juillet 2008
Statut
Membre
Dernière intervention
8 février 2011
96
Modifié par moska le 4/04/2011 à 00:08
Modifié par moska le 4/04/2011 à 00:08
/^\([- a-zA-Zéèëêäâàùüûîïÿöôoeç]+\)$/
Pour le "point", écrire \. la ou tu veux qu'il soit
Signature hors-charte - Supprimée par la modération
Pour le "point", écrire \. la ou tu veux qu'il soit
Signature hors-charte - Supprimée par la modération
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
130
29 nov. 2009 à 18:31
29 nov. 2009 à 18:31
Ma 3ième question était idiote. Compris: ^ et $ sont les caractères spéciaux de début et fin de chaîne.
Je ne vois pas où est ton problème.
http://www.python.org/doc/2.5.4/lib/re-syntax.html
Donc il sufit de rajouter ) et ( et . et , dans la RE, c'est tout....
Il n'y a que le ' auquel faire attention, non pas parce que c'est un caractère spécial dans les REs, mais parce qu'il ferme une chaîne si on l'a ouverte par '.
Il suffit alors de délimiter la RE par "
Les deux parenthèses après le ^ et avant le $ définissent un groupe, mais je ne vois pas à quoi ça sert de définir un groupe, étant donné que ce groupe capture l'ensemble de la chaîne et que pour obtenir la chaîne entre ^ et $, il suffit de pat.search(ch).group()
Ce qui fait qu'il n'y a pas besoin d'un groupe et d'un pat.search(ch).group(1) , sauf si cette RE doit fonctionner en mode MULTILINE.
D'autre part, en dehors d'un mode MULTILINE, on peut remplacer
par
et utiliser match() pour faire la détection:
Le caractère glouton de + fait que la recherche de matching va aller jusqu'à la fin de la chaîne et s'arrêter à la fin de ligne, SI ON N"EST PAS EN MODE MULTILINE. Donc pas besoin du $ non plus.
Je ne vois pas où est ton problème.
«Special characters are not active inside sets.»
http://www.python.org/doc/2.5.4/lib/re-syntax.html
Donc il sufit de rajouter ) et ( et . et , dans la RE, c'est tout....
Il n'y a que le ' auquel faire attention, non pas parce que c'est un caractère spécial dans les REs, mais parce qu'il ferme une chaîne si on l'a ouverte par '.
Il suffit alors de délimiter la RE par "
pat = re.compile("^[- a-zA-Zéèëêäâàùüûîïÿöôœç().']+$")
Les deux parenthèses après le ^ et avant le $ définissent un groupe, mais je ne vois pas à quoi ça sert de définir un groupe, étant donné que ce groupe capture l'ensemble de la chaîne et que pour obtenir la chaîne entre ^ et $, il suffit de pat.search(ch).group()
Ce qui fait qu'il n'y a pas besoin d'un groupe et d'un pat.search(ch).group(1) , sauf si cette RE doit fonctionner en mode MULTILINE.
D'autre part, en dehors d'un mode MULTILINE, on peut remplacer
"^[- a-zA-Zéèëêäâàùüûîïÿöôœç().']+$"
par
"[- a-zA-Zéèëêäâàùüûîïÿöôœç().']+"
et utiliser match() pour faire la détection:
pat.match(ch).group()
Le caractère glouton de + fait que la recherche de matching va aller jusqu'à la fin de la chaîne et s'arrêter à la fin de ligne, SI ON N"EST PAS EN MODE MULTILINE. Donc pas besoin du $ non plus.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question