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 ;)