gpt4 book ai didi

java - 我试图匹配日语字符的 Unicode 范围,但它抛出 PatternSyntaxException

转载 作者:行者123 更新时间:2023-12-02 09:39:26 25 4
gpt4 key购买 nike

我正在尝试根据 this post 匹配某些日语字符 block 的正则表达式使用 String 类中的 String.matches( String regex ) 方法。

但是范围正则表达式 [\\x3041-\\x3096] 和属性正则表达式 \p{Hiragana} 都会抛出 PatternSyntaxException。我的 IDE 也推荐属性,但似乎都不推荐日语字符。

引发此错误的代码是:

c.matches( "[\x3041-\x3096]")

StackTrace 是:

[\x3041-\x3096]
^
at java.base/java.util.regex.Pattern.error(Pattern.java:2015)
at java.base/java.util.regex.Pattern.range(Pattern.java:2813)
at java.base/java.util.regex.Pattern.clazz(Pattern.java:2701)
at java.base/java.util.regex.Pattern.sequence(Pattern.java:2126)
at java.base/java.util.regex.Pattern.expr(Pattern.java:2056)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1778)
at java.base/java.util.regex.Pattern.<init>(Pattern.java:1427)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1068)
at java.base/java.util.regex.Pattern.matches(Pattern.java:1173)
at java.base/java.lang.String.matches(String.java:2024)
at lib.UIE.TextInput.valid(TextInput.java:49)

最佳答案

对于属性正则表达式,请尝试使用 \p{IsHiragana} 代替。 Is 前缀用于区分 unicode 脚本和类别与使用 In 前缀的 block 。

更新\x3041,正如@VGR在原始帖子中提到的\x与java无关,应该使用\u3041

    Pattern.matches("\\p{IsHiragana}", "ど"); //true
Pattern.matches("[\u3041-\u3096]", "ど"); //true

Unicode support - Oracle Java Tutorials

关于java - 我试图匹配日语字符的 Unicode 范围,但它抛出 PatternSyntaxException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57220516/

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