gpt4 book ai didi

java - Java RegEx 模式中 Alnum 和 IsAlphabetic 字符类之间的关系

转载 作者:行者123 更新时间:2023-11-30 06:41:24 24 4
gpt4 key购买 nike

查看 Javadoc for java.util.regex.Pattern

\p{Alnum} An alphanumeric character:[\p{IsAlphabetic}\p{IsDigit}]

似乎每个匹配 \p{IsAlphabetic} 的字符也应该匹配 \p{Alnum}

然而,当角色有口音时,情况似乎并非如此。例如,以下断言失败:

assertEquals("é".matches("\\p{IsAlphabetic}+"),"é".matches("\\p{Alnum}+"));

对于其他带有重音符号的字符,如 ±ółź ż。所有匹配 \p{IsAlphabetic}+ 但不匹配 \p{Alnum}+

我是否误解了 Javadoc?或者这是文档或实现中的错误?

最佳答案

默认情况下 \p{Alnum} 被视为 POSIX 字符类,这意味着它只会匹配 ASCII 字符。这意味着它将匹配 a1 但不匹配 ä١

您引用的段落仅适用于 UNICODE_CHARACTER_CLASS 时使用标志。

稍微过于简单化,这个标志会将“旧的”POSIX 样式字符类转换为它们等效的 Unicode 字符类。

关于java - Java RegEx 模式中 Alnum 和 IsAlphabetic 字符类之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55742036/

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