Expressions Régulières
Déclaration d'une Expression Régulière
en JAVA |
en PHP |
Restriction |
var exp=new RegExp("Regex", "option"); | exp = "/Regex/option" | |
var exp="/Regex/option"; | exp = "#Regex#option" | |
exp = "<Regex>option" | ||
exp = "'Regex'option" | ||
exp = "[Regex]option" | ||
exp = Regex |
Regex (Expression Régulière)
Remarques: Sauf dans certains cas s'ils se trouvent à l'intérieur
d'une classe définie entre [], les métacaractères suivants
sont à échapper par '\' pour être
utilisés de façon régulière:
# ! ^ $ ( ) [ ] { } ? + - * . et \
Regex
Expression Régulière |
Signification |
Restriction |
^ |
Début de ligne ou de chaîne | |
$ |
Fin de ligne ou de chaîne | |
. |
N'importe quel caractère (utilisez l'option s pour que le point fonctionne aussi pour les retours à la ligne) |
|
x|y |
Caractère (ou chaîne de caractères) x ou y | |
[abc] |
Groupe de caractères : n'importe lequel de ceux entre crochets | |
[a-z] |
Groupe de caractères : n'importe lequel de a à z | |
[^0-9] |
Groupe de caractères : tous sauf ceux entre crochets | |
(x) (?:x) |
Expression parenthésée (mémorisée). Pour
empêcher de mémoriser, utilisez la syntaxe (?:x). En JAVA En PHP |
|
* |
Caractère précédent de 0 à X fois | |
+ |
Caractère précédent de 1 à X fois | |
? |
aractère précédent de 0 à 1 fois | |
{n} |
Caractère précédent exactement n fois | |
{n,} |
Caractère précédent au moins n fois | |
{n,m} |
Caractère précédent entre n et m fois | |
\ |
N'est pas un caractère, mais sert de caractère
d'échappement -> il faut échapper tous les métacaractères qui ont une siginification particulière, comme: # ! ^ $ ( ) [ ] { } ? + - * . et \ sauf dans certains cas s'ils se trouvent à l'intérieur d'une classe définie entre []. |
|
\ |
Caractère \ (échappé) | |
\t |
Tabulation | |
\n |
Nouvelle ligne | |
\r |
Retour chariot | |
\d |
Tout chiffre -> équivalent à [0-9] |
|
\D |
Tout sauf un chiffre -> équivalent à [^0-9] |
|
[[:digit:]] |
Tout chiffre -> équivalent à [0-9] |
|
[[:xdigit:]] |
Caractères héxadécimaux | |
\b |
Frontière de mot (espace, alinéa, ...) | |
\s |
Tout caractère d'espacement (espace, tabulation, saut de page, ...) -> équivalent à [\f \n \r \t \v] |
|
\S |
Tout sauf un caractère d'espacement | |
\w |
Tout caractère alphanumérique, y compris underscore(_) -> équivalent à [A-Za-z0-9_] |
|
\W |
Tout sauf un caractère alphanumérique -> équivalent à [^A-Za-z0-9_] |
|
[[:space:]] |
Tout caractère d'espacement (espace, tabulation, saut de page, ...) -> équivalent à [\f \n \r \t \v] |
|
[[:punct:]] |
Tout signe de ponctuation | |
[[:alpha:]] |
Tout caractère alphanumérique, y compris underscore(_) -> équivalent à [A-Za-z0-9_] |
|
[[:alnum:]] |
Toute lettre ou chiffre | |
[[:lower:]] |
Toute lettre en minuscule | |
[[:upper:]] |
Toute lettre en majuscule | |
[[:blank:]] |
Espace ou tabulation | |
[[:graph:]] |
Caractères affichables et imprimables | |
[[:cntrl:]] |
Caractères d'échappement | |
[[:print:]] |
Caractères imprimables exceptés ceux de contrôle | |
Assertions positives |
Les parenthèses ne créent pas de variable mémorisée dans ce cas | |
x(?=y) |
x suivi y | |
(?<=x)y |
y précédé de x | |
Assertions négatives |
Les parenthèses ne créent pas de variable mémorisée dans ce cas | |
x(?!y) |
x non suivi y | |
(?<!x)y |
y non précédé de x |
Options
Options |
Signification |
" " |
Vide, aucune option. |
g |
Recherche globale sur toute la chaîne. |
i |
Ne pas faire la distinction entre majuscule et minuscule. |
gi |
Association des options g et i. |
U |
Recherche la chaîne la plus petite (Ungreedy = pas gourmand). |
s |
Le point . peut aussi remplacer des sauts de ligne. |
D |
Pas de caractère de fin de ligne en fin de chaîne. |
x |
Les caractères d'espacement sont ignorés, sauf lorsqu'ils sont échappés, ou à l'intérieur d'une classe de caractères, et tous les caractères entre # non échappés et en dehors d'une classe de caractères, et le prochain caractère de nouvelle ligne sont ignorés. |
e |
La fonction PHP preg_replace effectue la substitution normale des références arrières dans la chaîne de remplacement, puis l'évalue comme un code PHP, et utilise le résultat pour remplacer la chaîne de recherche. |
Fonctions JAVAscript
Méthodes sur exp
|
Opération réalisée |
exp.test(txt) |
Teste sur txt si l'expression régulière est vraie ou fausse. |
exp.exec(txt) |
Retourne un tableau des occurences répondant aux critères de l'expression régulière dans txt. |
Méthodes sur txt
|
Opération réalisée
|
txt.split(exp) |
Crée un tableau qui contient tous les éléments trouvés entre le séparateur défini par le Regex dans l'expression régulière. |
txt.match(exp) |
Crée un tableau qui contient tous les éléments qui correspondent au Regex dans l'expression régulière. |
txt.replace(exp, remp)
|
Permet de trouver et de remplacer des occurences répondant aux critères du Regex dans l'expression régulière.
|
txt.search(exp)
|
Retourne la position du caractère de la 1ière occurrence répondant aux critères du Regex dans l'expression régulière. |
Fonctions PHP
Remarque: De préférence, utilisez les fonctions PCRE et les variables mémorisées $n.Opération réalisée |
||
match = preg_split(exp, txt
[, lim, opt]) |
Crée un tableau qui contient tous les éléments trouvés entre le séparateur défini par le Regex dans l'expression régulière. | |
int preg_match(exp, txt, match
[, opt, offset]) |
|
Crée un tableau qui contient le premier élément qui correspond au Regex dans l'expression régulière. Renvoie 1 si expression trouvée, 0 ou FALSE sinon. |
int preg_match_all(exp, txt,
match
[, opt, offset]) |
Crée un tableau qui contient tous les éléments qui correspond au Regex dans l'expression régulière. Renvoie le nombre d'expressions trouvées, 0 ou FALSE sinon. |
|
match = preg_grep(exp, tab,
[, opt]) |
|
Renvoie un tableau qui contient les éléments qui correspondent au Regex dans l'expression régulière. Remarque: tab doit être un tableau. |
match = preg_filtrer(exp, remp, txt[, lim, &cnt]) |
|
Identique à preg_replace ci-après, mais ne renvoie que les remplacements réalisés. |
match = preg_replace(exp, remp, txt[, lim, &cnt]) |
Permet de trouver et de remplacer des occurences répondant aux critères du Regex dans l'expression régulière. remp = "… $1 …$2..." => Utilise la valeur mémorisée dans $1, $2 pour le remplacement. |
|
match = preg_replace_callback(exp, remp, txt[, lim, &cnt]) |
Permet de trouver et de remplacer des occurences répondant aux critères du Regex dans l'expression régulière. remp est une fonction PHP qui prend en entrée la valeur trouvée, et qui fournit la valeur de remplacement. |
|
match = preg_quote(txt, remp) |
Echappe tous les caractères spéciaux ainsi que le caractère donné dans remplacement par un \. |
Fonctions PHP TEXTE
Fonction Texte |
Opération réalisée |
d = str_split(txt [, nb_car = 1]) |
Crée un tableau qui contient les caractères de la chaîne en segments de nb_car caractères. |
d = explode(exp, txt [, nb_car = 1]) |
Crée un tableau qui contient les caractères de la chaîne, séparés par l'expression régulière. |
d = str_replace(exp, txt , remp[, &cnt]) |
Remplace dans la chaîne le texte correspondant à l'expression régulière par le texte de remplacement. |
d = strtr(txt, exp, remp) |
Remplace dans la chaîne chaque caractère contenu dans expression régulière par son remplaçant contenu dans remplacement. |