java什么正则表达式可以匹配相似的字符?
什么正则表达式可以匹配类似的字符,如(a和a)或俄语(ц和ц)? 在我的代码下面
Sting text1 = " Passagiere noch auf ihr fehlendes Gepäck"
Sting text2 = " Passagiere noch auf ihr fehlendes Gepack"
Pattern p1 = Pattern.compile("\\b" + "Gepack");
Pattern p2 = Pattern.compile("\\b" + "Gepack");
Matcher m1 = p1.matcher(text1); // doesn't find any occurrence
Matcher m2 = p2.matcher(text2) // founds one occurrence
# 1 楼答案
您可以建立一个包含所有要匹配的字符的字符类,这样就可以将模式一替换为模式一
但这可能会很快变得非常沉重
Unicode中有一种称为规范化(normalization)的机制,详细信息请参见here,它允许您重新格式化字符串,以便以不同的方式进行比较
规范化格式规范分解(NFD)采用一个包含重音字符代码点的字符串,并创建多个代码点,从基本字符开始,然后与代码点共同发起,以每个重音字符的定义良好的顺序组合重音字符版本
对输入执行此操作后,可以使用正则表达式删除字符串中的所有重音符号,因为它们都具有Unicode属性
Mark
,有时缩写为M
这将为您提供一个仅包含正则表达式将匹配的基本字符的字符串