Apache:regex

De Lowgeek wiki

Web.png

Regex

Title2.png

Les classes de caractère

Elles prennent en compte tous les caractères. Si nous voulions récupérer dans une chaine de caractère le a et le c, nous devrions l'écrire comme ceci : [ac]. Nous pourrions l'utiliser pour chercher des mots. Ainsi, jo[ui]e pourrait correspondre à joie et à joue. Les classes sont très utilisées pour chercher des portions de chaine dans une chaine de caractère.


Title2.png

Les intervalles

Les intervalles servent à prendre tous les caractères contenus entre 2 caractères servant de limites. [..-..] Le - représente le séparateur à l'intérieur de la classe. Si nous voulions tout l'alphabet nous devrions écrire la classe comme ceci : [a-z]


Title2.png

Le +

Le caractère plus permet de définir que la chaine de carcatère n'est pas limité Par exemple ([a-z]+) peu aussi bien correspondre à abcd que abdcdegf


{{Template:Title2|Les exceptions}

Les seuls symboles ou métacaractères permis à l'intérieur d'une classe de caractère sont le crochet fermant ], la barre oblique inverse \, l' accent circonflexe ^ et le trait d'union -. Les métacaractères habituels sont des caractères normaux quand ils sont dans une classe de caractère, et n'ont pas besoin d'être échappés par une barre oblique inverse. Si nous voulions rechercher une étoile, la classe suivante devrait nous suffire [*]. Votre regex fonctionnera correctement si vous échapper les métacaractères dans une classe de caractère, mais cela réduira la lisibilité et sera plus gourmand en temps machine.


Title2.png

L'accent circonflexe ^ (caret en anglais)

L'accent circonflexe est un symbole et sert de négation. Pour inclure l'accent circonflexe comme un simple caractère, placez-le n'importe ou sauf juste après l'ouverture du crochet. [x^] correspond tout simplement à un x ou un accent circonflexe. Pour la négation, placer le juste après le crochet d'ouverture : [^*x] correspond à n'importe quel caractère qui n'est pas une étoile ou un x.


Title2.png

Le trait d'union

Le trait d'union sert de séparateur pour les intervalles et n'a pas besoin d'être échapper pour redevenir un simple caractère. Si le trait d'union est inclus à droite après le crochet ouvrant ou juste avant le crochet fermant. Les deux [-x] et [x-] corresponde à x ou à un simple trait d'union. 6) les raccourcies Comme nous avons des classes qui sont souvent utilisées, il existe des raccourcis : \d est l'abréviation de [0-9] ou \w correspond à la classe [A-Za-z0-9_].


Title2.png

Les classes

Les classes

Classe Description
. Signifie que vous pouvez mettre n'importe quel caractère
\w Correspond à un mot [_a-zA-Z0-9]
\W Ne correspond pas à un mot [^_a-zA-Z0-9]
\d Correspond à un chiffre [0-9]
\D Ne correspond pas a un chiffre [^0-9]
\s Correspond à un espace (correspond à \t \n \r)
\S Correspond à ce qui n'est pas un espace (\t \n \r)
\t Correspond à une tabulation
\n Correspond à un saut de ligne
\r Correspond à un retour chariot


Title2.png

Tableau des classes pré-définies

D'autres raccourcis sous forme de classes pré-définies

Les classes pré-définies

Classe Description
[[:alpha:]] N'importe quelle lettre
[[:digit:]] Nimporte quel chiffre
[[:xdigit:]] Nimporte quel caractères hexadécimaux
[[:alnum:]] N'importe quelle lettre ou chiffre
[[:space:]] N'importe quel espace blanc
[[:punct:]] N'importe quel signe de ponctuation
[[:lower:]] N'importe quelle lettre en minuscule
[[:upper:]] N'importe quelle lettre capitale
[[: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