我遇到了一些包含[^\\p{L}]
的正则表达式。我知道这是使用某种形式的Unicode类别,但当我检查the documentation时,我发现只有以下“L”类别:
Lu Uppercase letter UPPERCASE_LETTER
Ll Lowercase letter LOWERCASE_LETTER
Lt Titlecase letter TITLECASE_LETTER
Lm Modifier letter MODIFIER_LETTER
Lo Other letter OTHER_LETTER
在此背景下L
是什么?
答案 0 :(得分:16)
取自此链接:http://www.regular-expressions.info/unicode.html
检查Unicode Character Properties
部分。
\ p {L}匹配单个代码点 类别“字母”。如果您输入 字符串是à编码为U + 0061 U + 0300, 它匹配一个没有重音。如果 输入是à编码为U + 00E0,它 将à与重音相匹配。原因 是代码点U + 0061 (a)和U + 00E0(à)属于该类别 “字母”,而U + 0300在 类别“标记”。
答案 1 :(得分:2)
我没有看到任何明确的提及,但this page上的示例表明\\p{L}
表示任何字母:
Categories may be specified with the optional prefix Is: Both \p{L} and \p{IsL} denote the category of Unicode letters.