HervéRenault.fr

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