Подтвердить что ты не робот

Регулярное выражение \p {L} и \p {N}

Я новичок в регулярных выражениях и получил следующее регулярное выражение:

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

Я знаю, что означает * и | означает "или" и что\убегает.

Но я не знаю, что означает \p{L} и \p{N}. Я искал Google для него, без результата...

Может кто-нибудь мне помочь?

4b9b3361

Ответ 1

\p{L} соответствует одной кодовой точке в категории "буква".
\p{N} соответствует любому виду числового символа в любом script.

Источник: regular-expressions.info

Если вы собираетесь работать с регулярными выражениями, я предлагаю закладок на этом сайте, это очень полезно.

Ответ 2

Это ярлыки свойств Unicode (\p{L}для букв Unicode, \p{N} для цифр Unicode). Они поддерживаются .NET, Perl, Java, PCRE, XML, XPath, JGSoft, Ruby (1,9 и выше) и PHP (начиная с 5.1.0)

Во всяком случае, это очень странное регулярное выражение. Вы не должны использовать чередование, если достаточный класс символов:

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