160 votes

Expression régulière \p {L} et \p {N}

Je suis novice en matière d'expressions régulières et on m'a donné l'expression régulière suivante :

(\p{L}|\p{N}|_|-|\.)*

Je sais ce que * veut dire et | veut dire "ou" et ça m'échappe.

Mais je ne sais pas ce que \p{L} y \p{N} signifie. Je l'ai cherché sur Google, sans résultat...

Quelqu'un peut-il m'aider ?

228voto

Cerbrus Points 20704

\p{L} correspond à un seul point de code dans la catégorie "lettre".
\p{N} correspond à tout type de caractère numérique dans tout script.

Source : expressions régulières.info

Si vous travaillez beaucoup avec les expressions régulières, je vous conseille d'ajouter ce site à vos favoris, il est très utile.

44voto

Tim Pietzcker Points 146308

Ce sont des raccourcis de propriétés Unicode ( \p{L} pour les lettres Unicode, \p{N} pour les chiffres Unicode). Ils sont supportés par .NET, Perl, Java, PCRE, XML, XPath, JGSoft, Ruby (1.9 et plus) et PHP ( depuis 5.1.0 )

En tout cas, c'est une regex très étrange. Vous ne devriez pas utiliser l'alternance quand une classe de caractères suffirait :

[\p{L}\p{N}_.-]*

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X