expression régulière

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : expression régulière

par Berzemus » 30 sept. 2007, 19:21

moui, du coup, je me souviens pourquoi j'aime pas cette notation: c'est moche.

Ceci dit, je parlais bien des délimiteurs ^-^

dsl pour l'inattention. :wink:

par Cyrano » 30 sept. 2007, 18:27

C'est pas ça du tout : ton expression régulière devrait être encadrée de délimiteurs : il faut bien les doubles crochets pour les classes de caractères, mais dans ce cas, la paire extérieure est prise comme délimiteur et du coup il en manque une.

Essaye avec :
preg_match('#[[:alpha:]]#', $val);

par Berzemus » 30 sept. 2007, 17:58

Pourquoi deux paires de crochets ? Une suffit:
[:alpha:] (pour le posix), qui correspond à [a-zA-Z] en notation ascii (je préfère, perso).

Sous php, on doit fournir un caractère qui correspond au début du regex, qui doit être le même (le même, [ ≠ ] ), pour que php puisse s'y retrouver.

Classiquement, on propose le '/' , ce qui donnerait:

Code : Tout sélectionner

preg_match('/[:alpha:]/',$val)

expression régulière

par mosto » 30 sept. 2007, 16:40

Bonjour

pourquoi preg_match('[[:alpha:]]',$val);

me renvoi l'erreur

Compilation failed: POSIX named classes are supported only within a class at offset 0 in est_script.php on line 10


merci