正则表达式\ p {L}和\ p {N}

时间:2013-02-15 09:01:15

标签: xml regex character-class

我是正则表达式的新手,并且给出了以下正则表达式:

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

我知道*的意思和|意思是“或”而那个\逃脱。

但我不知道\p{L}\p{N}是什么意思。我搜索了Google,没有结果......

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:118)

  

\p{L}匹配“letter”类别中的单个代码点   \p{N}匹配任何脚本中的任何数字字符。

来源: regular-expressions.info

如果您打算使用正则表达式,我建议为该网站添加书签,这非常有用。

答案 1 :(得分:23)

这些是Unicode属性快捷方式(Unicode字母为\p{L},Unicode数字为\p{N})。它们受.NET,Perl,Java,PCRE,XML,XPath,JGSoft,Ruby(1.9及更高版本)和PHP(since 5.1.0)支持

无论如何,这是一个非常奇怪的正则表达式。当字符类足够时,你不应该使用交替:

[\p{L}\p{N}_.-]*
相关问题