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

TDW Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
TDW Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   352
 
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   Statut Membre Dernière intervention  
 
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 Statut Membre 5
 
essaye ca :
[a-zA-Z0-9]\[[a-zA-Z0-9]\]
0
TDW Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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 310 Statut Membre 26
 
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   Statut Membre Dernière intervention  
 
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