[Expressions regulieres] analyse d'une variable PHP
4 réponses
laurent.abadie
Bonjour,
je cherche à représenter une variable PHP par une expression
régulière, la règle est simple, en français : un $ puis une ou
plusieurs lettre puis une ou plusieurs lettre ou chiffre, en PHP j'ai
traduit ça par :
^[\$][a-z]([a-z]|[0-9])*
Quelqu'un peut me dire pourquoi lorsque je teste une telle expression
avec ereg, cela accepte-t-il des caractères de ponctuation, le 0-9 et
le a-z ne sont pas censés accepter que des chiffres (respectivement
des lettres) ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Antoine Dinimant
Darius a écrit:
Bonjour,
je cherche à représenter une variable PHP par une expression régulière, la règle est simple, en français : un $ puis une ou plusieurs lettre puis une ou plusieurs lettre ou chiffre,
à partir de quand les chiffres sont-ils autorisés ? si j'en crois ta regex, $a2 est bon
en PHP j'ai traduit ça par :
^[$][a-z]([a-z]|[0-9])*
ton expression ne prend pas de signe de ponctuation... le problème doit venir du reste de ton code, ou alors de ton interprétation... par exemple si tu la testes avec '$az,erty', ça marche, puisqu'elle reconnaît '$az'. Si tu veux éviter ça, il faut l'ancrer à droite avec $
Sinon, ^$[a-z][a-z0-9]* serait plus simple, plus correct et plus efficace, mais fait exactement la même chose que la tienne. En particulier :
- elle ne prend pas les majuscules -> [a-zA-Z] ou eregi
- elle ne prend pas les lettres accentuées... [a-z0-9] -> w, mais w accepte aussi l'underscore _
si ce que tu veux c'est reconnaître un nom de variable PHP, la doc te fournit la regex : [a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*
Darius a écrit:
Bonjour,
je cherche à représenter une variable PHP par une expression
régulière, la règle est simple, en français : un $ puis une ou
plusieurs lettre puis une ou plusieurs lettre ou chiffre,
à partir de quand les chiffres sont-ils autorisés ? si j'en crois ta
regex, $a2 est bon
en PHP j'ai
traduit ça par :
^[$][a-z]([a-z]|[0-9])*
ton expression ne prend pas de signe de ponctuation... le problème doit
venir du reste de ton code, ou alors de ton interprétation... par
exemple si tu la testes avec '$az,erty', ça marche, puisqu'elle
reconnaît '$az'. Si tu veux éviter ça, il faut l'ancrer à droite avec $
Sinon, ^$[a-z][a-z0-9]* serait plus simple, plus correct et plus
efficace, mais fait exactement la même chose que la tienne. En particulier :
- elle ne prend pas les majuscules -> [a-zA-Z] ou eregi
- elle ne prend pas les lettres accentuées... [a-z0-9] -> w, mais w
accepte aussi l'underscore _
si ce que tu veux c'est reconnaître un nom de variable PHP, la doc te
fournit la regex : [a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*
je cherche à représenter une variable PHP par une expression régulière, la règle est simple, en français : un $ puis une ou plusieurs lettre puis une ou plusieurs lettre ou chiffre,
à partir de quand les chiffres sont-ils autorisés ? si j'en crois ta regex, $a2 est bon
en PHP j'ai traduit ça par :
^[$][a-z]([a-z]|[0-9])*
ton expression ne prend pas de signe de ponctuation... le problème doit venir du reste de ton code, ou alors de ton interprétation... par exemple si tu la testes avec '$az,erty', ça marche, puisqu'elle reconnaît '$az'. Si tu veux éviter ça, il faut l'ancrer à droite avec $
Sinon, ^$[a-z][a-z0-9]* serait plus simple, plus correct et plus efficace, mais fait exactement la même chose que la tienne. En particulier :
- elle ne prend pas les majuscules -> [a-zA-Z] ou eregi
- elle ne prend pas les lettres accentuées... [a-z0-9] -> w, mais w accepte aussi l'underscore _
si ce que tu veux c'est reconnaître un nom de variable PHP, la doc te fournit la regex : [a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*
Shrom
"Darius" a écrit dans le message de news:
Bonjour,
je cherche à représenter une variable PHP par une expression régulière, la règle est simple, en français : un $ puis une ou plusieurs lettre puis une ou plusieurs lettre ou chiffre, en PHP j'ai traduit ça par :
^[$][a-z]([a-z]|[0-9])*
Quelqu'un peut me dire pourquoi lorsque je teste une telle expression avec ereg, cela accepte-t-il des caractères de ponctuation, le 0-9 et le a-z ne sont pas censés accepter que des chiffres (respectivement des lettres) ?
Merci d'avance pour votre aide !
Ton expression se traduit par: un terme qui commence par une lettre en minuscule puis une lettre en minuscule ou un chiffre zéro fois ou plus, donc un terme comme $a&@.$ est valable je mettrais plutôt: ^[$][a-z][a-z0-9]*$
Tu oublies aussi le underscore et les lettres majuscules pour décrire une variable PHP
"Darius" <laurent.abadie@free.fr> a écrit dans le message de
news:78b4123.0406290317.10dbd896@posting.google.com...
Bonjour,
je cherche à représenter une variable PHP par une expression
régulière, la règle est simple, en français : un $ puis une ou
plusieurs lettre puis une ou plusieurs lettre ou chiffre, en PHP j'ai
traduit ça par :
^[$][a-z]([a-z]|[0-9])*
Quelqu'un peut me dire pourquoi lorsque je teste une telle expression
avec ereg, cela accepte-t-il des caractères de ponctuation, le 0-9 et
le a-z ne sont pas censés accepter que des chiffres (respectivement
des lettres) ?
Merci d'avance pour votre aide !
Ton expression se traduit par:
un terme qui commence par une lettre en minuscule puis une lettre en
minuscule ou un chiffre zéro fois ou plus, donc un terme comme $a&@.$ est
valable
je mettrais plutôt:
^[$][a-z][a-z0-9]*$
Tu oublies aussi le underscore et les lettres majuscules pour décrire une
variable PHP
je cherche à représenter une variable PHP par une expression régulière, la règle est simple, en français : un $ puis une ou plusieurs lettre puis une ou plusieurs lettre ou chiffre, en PHP j'ai traduit ça par :
^[$][a-z]([a-z]|[0-9])*
Quelqu'un peut me dire pourquoi lorsque je teste une telle expression avec ereg, cela accepte-t-il des caractères de ponctuation, le 0-9 et le a-z ne sont pas censés accepter que des chiffres (respectivement des lettres) ?
Merci d'avance pour votre aide !
Ton expression se traduit par: un terme qui commence par une lettre en minuscule puis une lettre en minuscule ou un chiffre zéro fois ou plus, donc un terme comme $a&@.$ est valable je mettrais plutôt: ^[$][a-z][a-z0-9]*$
Tu oublies aussi le underscore et les lettres majuscules pour décrire une variable PHP
Guillaume Bouchard
Darius wrote:
Bonjour,
je cherche à représenter une variable PHP par une expression régulière,
Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*'
N'oublie pas d'ajouter les ^ et $.
-- Guillaume.
Darius wrote:
Bonjour,
je cherche à représenter une variable PHP par une expression
régulière,
Variable names follow the same rules as other labels in PHP. A valid
variable name starts with a letter or underscore, followed by any number
of letters, numbers, or underscores. As a regular expression, it would
be expressed thus: '[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*'
Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*'
N'oublie pas d'ajouter les ^ et $.
-- Guillaume.
Stephane Pineau
Le 29 Jun 2004 12:48:05 GMT, (Darius) écrivait:
je cherche à représenter une variable PHP par une expression régulière, la règle est simple, en français : un $ puis une ou
Tu as l'expression régulière idoine indiquée dans la doc PHP. Extrait :
" Les noms de variables suivent les mêmes règles de nommage que les autres entités PHP. Un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés. Exprimé sous la forme d'une expression régulière, cela donne : '[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*' "
A lire sur http://www.php.net/manual/fr/language.variables.php
Le 29 Jun 2004 12:48:05 GMT, laurent.abadie@free.fr (Darius) écrivait:
je cherche à représenter une variable PHP par une expression
régulière, la règle est simple, en français : un $ puis une ou
Tu as l'expression régulière idoine indiquée dans la doc PHP. Extrait :
" Les noms de variables suivent les mêmes règles de nommage que les autres
entités PHP. Un nom de variable valide doit commencer par une lettre ou un
souligné (_), suivi de lettres, chiffres ou soulignés. Exprimé sous la forme
d'une expression régulière, cela donne :
'[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*' "
A lire sur http://www.php.net/manual/fr/language.variables.php
je cherche à représenter une variable PHP par une expression régulière, la règle est simple, en français : un $ puis une ou
Tu as l'expression régulière idoine indiquée dans la doc PHP. Extrait :
" Les noms de variables suivent les mêmes règles de nommage que les autres entités PHP. Un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés. Exprimé sous la forme d'une expression régulière, cela donne : '[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*' "
A lire sur http://www.php.net/manual/fr/language.variables.php