Регулярное выражение \p {L} и \p {N}
Я новичок в регулярных выражениях и получил следующее регулярное выражение:
(\p{L}|\p{N}|_|-|\.)*
Я знаю, что означает * и | означает "или" и что\убегает.
Но я не знаю, что означает \p{L}
и \p{N}
. Я искал Google для него, без результата...
Может кто-нибудь мне помочь?
Ответы
Ответ 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}_.-]*