15

我遇到了一些包含[^\\p{L}]. 我知道这是使用某种形式的 Unicode 类别,但是当我检查文档时,我发现只有以下“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在这种情况下是什么?

4

2 回答 2

18

取自此链接:http ://www.regular-expressions.info/unicode.html

检查Unicode Character Properties部分。

\p{L} 匹配“字母”类别中的单个代码点。如果您的输入字符串 à 编码为 U+0061 U+0300,则它匹配没有重音符号的 a。如果输入是 à 编码为 U+00E0,它匹配 à 和重音。原因是代码点 U+0061 (a) 和 U+00E0 (à) 都属于“字母”类别,而 U+0300 属于“标记”类别。

于 2011-05-11T19:28:59.193 回答
3

我没有看到任何明确提及它,但此页面上的一个示例表明这\\p{L}意味着任何字母:

可以使用可选前缀 Is 指定类别:\p{L} 和 \p{IsL} 都表示 Unicode 字母的类别。

于 2011-05-11T19:28:45.807 回答