Espressione regolare \ p {L} e \ p {N}

Sono nuovo alle espressioni regolari e mi è stata data la seguente espressione regolare:

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

So cosa * significa e | significa “o” e che \ fugge.

Ma cosa non so cosa significhi \p{L} e \p{N} . Ho cercato Google per questo, senza risultato …

Qualcuno può aiutarmi?

\p{L} corrisponde a un singolo punto di codice nella categoria “lettera”.
\p{N} corrisponde a qualsiasi tipo di carattere numerico in qualsiasi script.

Fonte: regular-expressions.info

Se lavorerai con espressioni regolari molto, ti suggerirei di aggiungere un segnalibro a quel sito, è molto utile.

Queste sono scorciatoie di proprietà Unicode ( \p{L} per le lettere Unicode, \p{N} per le cifre Unicode). Sono supportati da .NET, Perl, Java, PCRE, XML, XPath, JGSoft, Ruby (1.9 e versioni successive) e PHP ( dalla versione 5.1.0 )

Ad ogni modo, è una regex molto strana. Non dovresti usare l’alternanza quando una class di caratteri sarebbe sufficiente:

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