Hua*_*hao -2 java regex unicode
class Test
{
public static void main (String[] args)
{
String regex = "\\p{L}";
System.out.println("0".matches(regex));
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码打印为false,但我期望是真的因为ASCII不是unicode的子集吗?"0"是ASCII的一部分,所以我认为它也应该属于unicode字母.
另外,逗号,句号等打印"false"为true,而"a"将打印为true.
这是因为\\p{L}匹配一个Unicode字母,你匹配一个数字.
您可以使用:
[\\p{L}\\p{Nd}.,]
Run Code Online (Sandbox Code Playgroud)
匹配Unicode数字或字母.
您还应该(?U)在正则表达式前面使用Unicode支持,如下所示:
String regex = "(?U)[\\p{L}\\p{Nd}.,]+";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |