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


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

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

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

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

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

2 65

2 ответа:

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

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

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

это ярлыки свойств Юникода (\p{L} для Буквы в Юникоде, \p{N} для цифр в Юникоде). Они поддерживаются .Чистая, Perl или Java, PCRE вместе, в формате XML, XPath, можно JGSoft, Рубин (1.9 и выше) и PHP (начиная с версии 5.1.0)

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

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