Java 忽略变音符号的正则表达式匹配器

Java 忽略变音符号的正则表达式匹配器,java,android,regex,diacritics,Java,Android,Regex,Diacritics,我需要正则表达式搜索字符串,以查找具有以下条件的事件: 论词界 不区分大小写 忽略变音符号 我的代码: CharSequence text = "One Twó"; String searchString = "two"; Pattern p = Pattern.compile("(?i)\\b"+searchString); Matcher m = p.matcher(text); while(m.find()) { int s = m.start(); int e = m.e

我需要正则表达式搜索字符串,以查找具有以下条件的事件:

  • 论词界
  • 不区分大小写
  • 忽略变音符号
我的代码:

CharSequence text = "One Twó";
String searchString = "two";
Pattern p = Pattern.compile("(?i)\\b"+searchString);
Matcher m = p.matcher(text);
while(m.find()) {
   int s = m.start();
   int e = m.end();
}
前2个条件由(?i)和\b模式表达式实现

我仍然需要实现第三个目标,忽略变音符号,因此在上面搜索的字符串“two”将匹配文本中的文本“Twó”。怎么做

谢谢

我建议您在尝试匹配字符串之前删除变音符号

相关问题:


可能的重复不是删除变音符号,而是在文本搜索过程中忽略它们。上述问题的第二个答案似乎就是您要寻找的:您可以将Keppil的答案与BreakIterator结合起来,使用正确的语言环境提取单词,并使用Collator进行匹配。可以实现,但需要额外的步骤,更多代码、内存分配、更多GC。。。我更喜欢纯正则表达式解决方案。我的建议是:在这一点上,在这个级别上,不要根据内存分配和GC做出设计决策。可能的问题:这些代码修改了原始文本,所以如果我在修改后的文本中搜索,我可能会从Matcher获得不正确的偏移量。