我有一个样本字符串,如á,é,í,ó,ú,ü,ñ,我想替换特殊字符,例如:
á有一个
é与e
等等..
我有一张地图,其中我将特殊字符作为键,并将其替换为值 现在假设我将一个字符串“novásmúsíc”传递给正则表达式将验证它的方法,如果找到任何特殊字符(我提到的那个),那么它应该用映射的字符替换。
请帮我处理正则表达式验证部分。
答案 0 :(得分:3)
您可以通过Unicode normalization执行此操作,然后使用正则表达式删除连字标记。
请参阅此问题及其接受的答案:"Convert Unicode to ASCII without changing the string length (in Java)"
答案 1 :(得分:-1)
您可以使用此正则表达式[^ 0x00-0x7F]
String source=args[0];
Pattern p = Pattern.compile("[^0x00-0x7F]");
Matcher m = p.matcher(source);
if(map.containsKey(m.group()){
//Replace with the value here
}
else{
//put a default value for all
}
这仅基于您问题中提供的少量信息。您需要详细说明以获得更详细的答案。此正则表达式仅检查ASCII值(list here)