web-dev-qa-db-fra.com

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

Je suis nouveau dans les expressions régulières et j'ai reçu l'expression régulière suivante:

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

Je sais ce que * signifie et | signifie "ou" et que\échappe.

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

Est-ce que quelqu'un peut m'aider?

91
Diemauerdk

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

Source: regular-expressions.info

Si vous travaillez beaucoup avec des expressions régulières, je vous suggère de mettre ce site en favori dans vos favoris, c'est très utile.

132
Cerbrus

Ce sont des raccourcis de propriété Unicode (\p{L} pour les lettres Unicode, \p{N} pour les chiffres Unicode). Ils sont pris en charge par .NET, Perl, Java, PCRE, XML, XPath, JGSoft, Ruby (1.9 et versions supérieures) et PHP ( depuis 5.1. )

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

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