Expression Régulière
- DATE DU SUJET : Jeudi 1 Février 2018
- Langage : PCRE
- preg_match('/test/','test');
- Les // de '/test/' encadre l'expression et peuvent êtres remplacé par d'autre caractères spéciaux
- Les expression peuvent avoir des options qui ce place après les // comme ceci '/test/i'
- LES OPTIONS :
- i : sensibilité à la casse
- Les expression sont sensibles à la casse
-
'/test/' : recherche le mot test,
'The test' donnera TRUE,
'Je teste' donnera TRUE,
'Test à la régulière' donnera FALSE car Test a une majuscule
-
'/test/i' : recherche le mot test,
le i de '/test/i' enlève la sensibilité à la casse,
du coup 'Test à la régulière' donnera TRUE
- Condition OU(|)
- '/test|fonction/' : recherche le mot 'test' OU 'fonction'
- Les [ ] servent à avoir plusieurs possibilités de caractères
-
'/[123] [KMG]o/' :
recherche les expression suivantes 2 Ko, 1 Mo, 3 Go
et non Go ou 3Go
- Le signe - sert à encadrer plusieurs lettres ou chiffres
-
'/[1-3] ans/' recherche les expression suivantes 1 ans,
2 ans, 3 ans
- '/[b-e]/' : recherche les lettres suivantes b, c, d, e
- Le début(^) est la fin($) d'une expression
- '/^test conditions$/' : recherche une expression commençant et finissant par test conditions
- Le caractères ^ sert aussi de négation
-
'/[^b-y](bis|efir)/' : peut rechercher les expression suivantes abis,
zbis, zefir, aefir et avec tout les autre caractères qui ne sont pas compris entre b et y
- Le ?, le + et le * servent à quantifiers les lettres
- ATTENTION : cela fonctionne que pour un seul caractère, celui qui précéde le quantificateur
-
'/abo?is/' : recherche les mots suivants abois et abis
car ? recherche zéro ou une fois le caractère
-
'/abo+is/' : recherche les mots suivants abois et aboois
car + recherche une ou plusieurs fois le caractère
-
'/abo*is/' : recherche les mots suivants abois, aboois et abis
car * recherche zéro, une ou plusieurs fois le caractère
- '/[a-z?]/' : cela ne fonctionnera pas, le ? sera un caractère comme un autre, car il est entre crochets
- '/[a-z]?/' ou '/([a-z])?/' : ceci convient mieux, on pourra avoir zéro, une ou plusieurs lettres ou caractères, car nous recherchons simplement zéro ou une lettre parmis tant d'autres
- '/^[a-z]?$/' : ceci permettra d'obliger zéro ou une lettres, car ^ oblige de commencer avec zéro ou une lettre et $ oblige de terminer avec zéro ou une lettre
- Les {} sont aussi des quantificateurs
- '/[a-z]{0,115}/' : recherchera de zéro à 115 éléments (lettres) qui se suivent
- '/[a-z]{10,}/' : recherchera de dix à infini lettres qui se suivent
- '/[a-z]{38}/' : recherchera 38 lettres qui se suivent
- '/[a-z]{3}/','ag d' : ceci donnera FALSE car il y a un espace entre les trois lettres, donc elle ne se suivent pas
- De manière générale tout les caractères spéciaux on besoin d'un \ antislash pour les représenter comme ceci : '/Ceci est une phrase test\./'
- Les caractères spéciaux que je connais . ? ! $ ^ + * () [] {} \ et les caractères utiliser en début et fin d'expression, dans mon cas / et '
-
Entre [ ] crochets tout les caractères deviennent normal, sauf quelques caractères spéciaux, hé bien les [ ] crochets,
le - tiret qui sert à encadrer des lettres ou des chiffres (en le mettant au début ou à la fin sa le rend normal),
les caractères que vous utiliser au début et à la fin de l'expression, dans mon cas / et ', pour les utiliser, un antislash est le bien venu, comme ceci '/[\]a-z\[]/' et '/[a-z\'\/]/'
ATTENTION : l'antislash (\) n'est pas représentable dans les crochets '/[a-z\\]/',
utilisable comme ceci '/[a-z]\\\/' ou comme ceci '/([a-z]\\\){3}/', vous remarquerez bien les trois antislash \\\ et pas deux \\, essayez toujours on sais jamais ;)