我是正则表达式的新手,并且给出了以下正则表达式:
(\p{L}|\p{N}|_|-|\.)*
我知道*的意思和|意思是“或”而那个\逃脱。
但我不知道\p{L}
和\p{N}
是什么意思。我搜索了Google,没有结果......
有人可以帮助我吗?
答案 0 :(得分:118)
\p{L}
匹配“letter”类别中的单个代码点\p{N}
匹配任何脚本中的任何数字字符。
如果您打算使用正则表达式,我建议为该网站添加书签,这非常有用。
答案 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}_.-]*