[PHP] Syntaxe d'expressions régulières

Fermé
TDW Messages postés 5 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 21 mai 2008 - 20 mai 2008 à 22:14
TDW Messages postés 5 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 21 mai 2008 - 21 mai 2008 à 14:40
Bonjour,
je cherche à déceler si une chaine de caractère respecte le format suivant en respectant les crochets et les espaces :
lettres chiffres [lettres chiffres]

En consultant wikipedia, j'ai mis au point l'expression régulière suivante :
'[:alnum:]+ [:digit:]+ \[[:alnum:]+ [:digit:]+\]'

Mais j'obtient l'erreur suivante :
Warning: preg_match() [function.preg-match]: Unknown modifier '+' in ... on line 75
75 étant la ligne où j'ai placé mon expression.

Configuration du serveur web :
Apache : 2.2.8
PHP : 5.2.4

Si quelqu'un pouvait me dire d'où viens l'erreur (de syntaxe apparemment) ou me corriger mon expression.
Merci d'avance.
A voir également:

3 réponses

lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
20 mai 2008 à 22:20
bonsoir si tu veut j'ai un petit dossier concernant les chaines je te le met à dispostion
http://milsodor.no-ip.org/ccm/regex/
j'espere que cela va t'aider
@+
0
TDW Messages postés 5 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 21 mai 2008
21 mai 2008 à 14:33
Je n'ai rien trouvé dans ton dossier d'autre que ce que je savais déjà.
Cependant, il est bien présenté et clair, je m'en resservirai.

J'ai quand même essayer une chose que j'ai vu dans des exemples :
J'ai tenté de remplacer le '+' par '{1,30}' (le 30 étant plus que suffisant comme maximum dans mon cas)
Mais la l'erreur devient : Warning: preg_match() [function.preg-match]: Unknown modifier '{' in ...


PS : en page 15 tu as inversé minuscule et majuscule dans l'exemple.
0
B2n Messages postés 40 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 25 janvier 2009 5
20 mai 2008 à 22:21
essaye ca :
[a-zA-Z0-9]\[[a-zA-Z0-9]\]
0
TDW Messages postés 5 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 21 mai 2008
21 mai 2008 à 14:40
Par d'erreur à l'execution mais ne correspond pas du tout aux critères de départ.
les groupes de chiffres et de lettres contiennent un nombre variable de caractères et sont séparé par des espace.
Le problème c'est le nombre variable de caractère. D'où le '+' qui pose problème.
0
Didoch54000 Messages postés 308 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 27 décembre 2012 26
20 mai 2008 à 22:21
Bonsoir,

C'est juste une intervention de ce que je me rappel :
J'avais eut le même soucis et j'ai changé :
les digit par des 0-9
les alpha par des A-Z

ce qui donne quelque chose comme ca :
'[:alnum:]+ [:digit:]+ \[[:alnum:]+ [:digit:]+\]'
en:
'[A-Za-z0-9]+ [0-9]+ \[[A-Za-z0-9]+ [0-9]+\]'

Car :alnum: ... et compris par unix uniquement.

Bon code
0
TDW Messages postés 5 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 21 mai 2008
21 mai 2008 à 14:24
Même problème, c'est le '+' qui pose problème.
Les classes de caractères sont bien comprises, ma compilation de PHP inclut les normes POSIX
(je les ai testé dans une expression toute simple elles passent)
0