当我尝试比较 'Đ' 和 'D' 时遇到问题,我需要返回 true,但 Locale English 返回 false,因为 'Đ' 不能用正则表达式替换:
“\\p{Block=CombiningDiacriticalMarks}+”
。
最佳答案
字符类 [\u0110D]
将匹配 Đ 或 D(Đ 是代码点 U+0110)。
匹配非英文字符,入门
一个常见的例子是“über-geek”这个词。无论 u 上方是否有变音符号,我如何匹配该词?简单:[\u0252u]ber-geek
将匹配“über-geek”或“uber-geek”。
根据您的正则表达式引擎,有多种匹配区域特定字符的好方法。买一本关于你的具体实现的书来发现它的不足之处。顺便说一下,您可以在 Regular-Expressions.info 的 Unicode page 找到有关特定于 Unicode 的正则表达式信息的极好资源。 .
如果我想匹配任何字符怎么办?如果您有权访问 \X
字符类,它将充当 。
在 Unicode 上下文中。这意味着组合形成一个字素的多个 Unicode 代码点将作为一个“字符”注册到引擎。
注意:我并不是要“窃取”这个问题的答案,如果 Ted Hopp 将他的评论移出,我将删除我的答案。我只是想确保寻找非英语正则表达式匹配项的人可以看到这个问题确实得到了回答。
关于java - 比较非英文字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17057469/