Espace membres

Bonjour Anonyme

Inscription

Email :
Mot de passe :

Mot de passe oublié ?

Nos scripts

MySpeach

MySpeach est un chat php sans base de donnée, rapide, léger et facile à prendre en main. DEMO

MyPHPUpload

MyPHPUpload est un script d'upload sécurisé écrit en PHP. DEMO

GrapAgenda

Agenda PHP et MySQL avec comptes utilisateurs et administration. DEMO

Livre PHP

Introduction aux expressions régulieres regex

Cours / tutoriel écrit le 17-06-2010 par sky

Qu'est-ce qu'une expression régulière?

Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au modèle. Ce système est emprunté au système POSIX (un système d'exploitation). De nombreux scripts sous UNIX les utilisent (notamment Perl ).

En réalité il s'agit d'un système fort ingénieux (et aussi très puissant) permettant de retrouver un mot, ou une phrase (et même beaucoup d'autres choses en réalité) dans un texte, ressemblant au modèle que l'on a construit...


Construire une expression régulière

Les expressions régulières permettent de rechercher des occurrences (c'est-à-dire une suite de caractères correspondant à ce que l'on recherche) grâce à une série de caractères spéciaux. L'expression régulière en elle-même est donc une chaîne de caractère contenant des caractères spéciaux et des caractères standards...

Les symboles ^ et $ indiquent le début ou la fin d'une chaine, et permettent donc de la délimiter. "^debut": chaine qui commence par "debut" "fin$": chaine qui se termine par "fin" "^chaine$": chaine qui commence et se termine par "chaine" "abc": chaine contenant la chaine "abc" Les symboles *, + et ?, respectivement "zero ou plusieurs", "un ou plusieurs", "un ou aucun", permettent de donner une notions de nombre. "abc+": chaine qui contient "ab" suivie de un ou plusieurs "c" ("abc", "abcc" etc..) "abc*": chaine qui contient "ab" suivie de zero ou plusieurs "c" ("ab", "abc" etc..) "abc?": chaine qui contient "ab" suivie de zero ou un "c" ("ab" ou "abc") "^abc+": chaine qui commence par "ab" suivie de un ou plusieurs "c" ("abc", "abcc" etc..)

Les accolades {X,Y} permettent de donner des limites de nombre. "abc{2}": chaine qui contient "ab" suivie de deux "c" ("abcc") "abc{2,}": chaine qui contient "ab" suivie de deux "c" ou plus ("abcc" etc..) "abc{2,4}": chaine qui contient "ab" suivie 2, 3 ou 4 "c" ("abcc" .. "abcccc") A noter que le premier nombre de la limite ("{0,2}", mais pas "{,2}") est obligatoire. Les symboles vu précedemment ('*', '+', and '?') sont équivalents à "{0,}", "{1,}", et "{0,1}".

Les parenthèses ( ) permettent de représenter une séquence de caractères. "a(bc)*": chaine qui contient "a" suivie de zero "bc" ou plus La barre verticale | se comporte en tant qu'opérateur OU "un|le": chaine qui contient "un" ou "le" "(un|le) chien": chaine qui contient "un chien" ou "le chien" "(a|b)*": chaine qui contient une suite de "a" ou de "b" Le point . indique n'importe quel caractère (une fois) "^.{3}$": chaine qui contient 3 caractères Les crochets [ ] définissent une liste de caractères autorisés (ou interdits). Le signe - permet quand à lui de définir un intervalle. Le caractère ^ après le premier crochet indique quand à lui une interdiction. "[abc]": chaine qui contient un "a", un "b", ou un "c" "[a-z]": chaine qui contient un caractère compris entre "a" et "z" "[^a-zA-Z]": chaine qui ne commence pas par une lettre



* Pour rechercher un caractère faisant partie des caractères spéciaux, il suffit de le faire précéder d'un antislash ( sauf entre crochets )
* un antislash doit donc être doublé!


En effet dans les crochets, chaque caractère représente ce qu'il est. Pour représenter un ] il faut le mettre en premier (ou après un ^ si c'est une interdiction), un - se met en premier ou en dernier. "[+?{}.]": chaine qui contient un de ces six caractères "[]-]": chaine qui contient le caractère "]" ou le caractère "-"

Voici un tableau récapitulatif des caractères spéciaux utilisés dans les expressions régulières:

Caractère Utilité
[] Les crochets définissent une liste de caractères autorisés
() Les parenthèse définissent un élément composé de l'expression régulière qu'elle contient
{} Les accolades lorsqu'elles contiennent un ou plusieurs chiffres séaprés par des virgules représente le nombre de fois que l'élément précédant les accolades peut se reproduire (par exemple p{2,5} correspond à ppp , pppp ou ppppp
- Un moins entre deux caractères dans une liste représente un intervalle (par exemple [a-d] représente [abcd] )
. Le caractère point représente un caractère unique
* Le caractère astérisque indique la répétition indéterminée de l'élément la précédant
? Le caractère "point d'interrogation indique la présence éventuelle de l'élément la précédant
| Occurence de l'élément situé à gauche de cet opérateur ou de celui situé à droite ( lard|cochon )
^

* Placé en début d'expression il signifie "chaîne commençant par .. "
* Utilisé à l'intérieur d'une liste il signifie "ne contenant pas les caractères suivants...

$ Placé en fin d'expression il signifie "chaîne finissant par .. "


Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL . Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement

Commentaires

Aucun commentaire. Soyez le premier !

Pseudo
Email
Commentaire

Merci d'écrire le code ici :