什么是{L} Unicode类别?

时间:2011-05-11 19:20:06

标签: java regex unicode character-properties

我遇到了一些包含[^\\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是什么?

2 个答案:

答案 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.