Matcher des caractères accentués
Note : ici je ne parle que de PHP et grep parce que c'est ce que j'utilise le plus.
Avant, c'était "simple", il y avait les caractères ASCII et puis c'est tout 😉
[a-zA-Z]
ou son équivalent Perl \w
matchait de a à z et de A à Z, mais pas les caractères accentués.
Pour matcher les caractères accentués dans PHP, on doit faire /\w/u
avec l'option u
pour Unicode.
Plus moderne, \p{L}
ou sa version longue \p{Letter}
permet de matcher un code point Unicode, dans PHP et dans grep -P
Pour un équivalent de [A-Z]
mais avec les accents, on peut utiliser \p{Lu}
ou en version longue \p{Uppercase_Letter}
Pour un équivalent de [a-z]
mais avec les accents, on peut utiliser \p{Ll}
ou en version longue \p{Lowercase_Letter}
Au-delà des accents, il y a quelques autres subtilités telles que \p{Titlecase_Letter}
pour matcher un caractère majuscule en début de mot quand les autres caractères sont en minuscule. Pour la liste complète, voir l'excellent site Regular-Expressions.info