比较非英文字符

时间:2013-06-12 04:01:21

标签: java regex string

当我尝试比较'Đ'和'D'并且我需要返回true时遇到问题,但是Locale English返回false,因为'Đ'不能用正则表达式替换:

"\\p{Block=CombiningDiacriticalMarks}+"

1 个答案:

答案 0 :(得分:3)

字符类[\u0110D]将匹配Đ或D(Đ是代码点U + 0110)。

匹配非英语字符,入门

一个常见的例子是“über-geek”这个词。我是如何匹配这个词的,而不管你上面是否有变音符号?简单:[\u0252u]ber-geek将匹配'über-geek'或'uber-geek'。

根据您的正则表达式引擎,有多种方法可以匹配特定于语言环境的字符。购买一本关于你的具体实施的书,以发现它的皱纹。顺便说一下,您可以在Regular-Expressions.info的Unicode page找到适合Unicode特定的正则表达式信息的优秀资源。

如果我想匹配任何字符怎么办?如果您有权访问\X字符类,它将在Unicode上下文中充当.。这意味着组合成一个字素的多个Unicode代码点将注册为引擎的一个“字符”。

注意:我不是想“窃取”这个问题的答案,如果Ted Hopp将他从评论中删除,我会删除我的。我只是想确保那些寻找非英语正则表达式匹配的人能够看到这个问题确实得到了答案。