downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

Fonctions PCRE> <Différences avec Perl
[edit] Last updated: Fri, 14 Jun 2013

view this page in

Differences avec les regex POSIX

Depuis PHP 5.3.0, l'extension des Regex POSIX est obsolète. Il y a un certain nombre de différences entre les regex POSIX et PCRE. Cette page liste les plus remarquables qu'il faut connaitre pour passer de l'un à lautre.

  1. Les fonctions PCRE demandent à ce que le motif soit entouré de délimiteurs.
  2. A la différence de POSIX, l'extension PCRE n'a pas de fonctions dédiées à la correspondance insensible à la casse. Au lieu de cela, il faut utiliser modificateur i. D'autres modificateurs sont aussi disponibles.
  3. Les fonctions POSIX trouvent l'occurence la plus longue en partant de la gauche, mais PCRE s'arrête dès correspondance avec la première occurence. Si la chaine n'a aucune correspondance, cela ne crée pas de différence mais si il y a correspondance, cela peut avoir des effets importants sur le resultat trouvé et le temps de recherche du motif. Pour illustrer cette différence, considérons l'exemple suivant tiré de "Mastering Regular Expressions" par Jeffrey Friedl. L'utilisation du motif one(self)?(selfsufficient)? sur la chaine oneselfsufficient avec PCRE donnera un résultat oneself, mais avec POSIX le résultat sera toute la chaine oneselfsufficient. Les deux sous-chaines correspondent à la chaine originale, mais POSIX utilise la plus longue comme résultat.

Remplacements de fonctions
POSIX PCRE
ereg_replace() preg_replace()
ereg() preg_match()
eregi_replace() preg_replace()
eregi() preg_match()
split() preg_split()
spliti() preg_split()
sql_regcase() No equivalent



add a note add a note User Contributed Notes Differences avec les regex POSIX - [1 notes]
up
0
jasen at treshna dot com
1 year ago
there are several other differences

including different meaning for the symbols  ( [
different rules for which symbols need escaping (they can't be the same as both standard posix and extended posix)

you should read the full documentation for PCRE before chaging any posix regex to use pcre.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites