gpt4 book ai didi

Java正则表达式: why numbers [0-9],逗号等不是unicode吗?

转载 作者:行者123 更新时间:2023-12-01 18:17:35 36 4
gpt4 key购买 nike

class Test
{
public static void main (String[] args)
{
String regex = "\\p{L}";
System.out.println("0".matches(regex));
}
}

上面的代码打印 false,但我期望 true,因为 ASCII 不是 unicode 的子集? “0”是ASCII的一部分,所以我认为它也应该属于unicode字母。

此外,逗号、句点等将打印“false”true,而“a”将打印 true。

最佳答案

这是因为 \\p{L} 匹配 Unicode 字母,而您匹配的是数字。

您可以使用:

[\\p{L}\\p{Nd}.,]

匹配 Unicode 数字或字母。

您还应该在正则表达式前面使用 (?U) 来支持 Unicode,如下所示:

String regex = "(?U)[\\p{L}\\p{Nd}.,]+";

关于Java正则表达式: why numbers [0-9],逗号等不是unicode吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60337937/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com