如何用相应的英文字母替换像“á”这样的字符
How to replace Characters like "á" with corresponding english alphabet
我有一个示例字符串,例如 á、é、í、ó、ú、ü、ñ,我想替换特殊字符,例如:
á 和
é 和 e
等等..
我有一张地图,其中我将特殊字符作为键并将其相应的替换作为值。
现在假设我将一个 String "novás músíc" 传递到正则表达式将验证它的方法中,如果找到任何特殊字符(我提到的那个),那么它应该被映射的字符替换。
请帮助我完成正则表达式验证部分。
您可以使用这个正则表达式 [^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)
您可以通过 Unicode normalization 执行此操作,然后使用正则表达式删除连字标记。
查看此问题及其接受的答案:"Convert Unicode to ASCII without changing the string length (in Java)"
我有一个示例字符串,例如 á、é、í、ó、ú、ü、ñ,我想替换特殊字符,例如:
á 和
é 和 e
等等..
我有一张地图,其中我将特殊字符作为键并将其相应的替换作为值。
现在假设我将一个 String "novás músíc" 传递到正则表达式将验证它的方法中,如果找到任何特殊字符(我提到的那个),那么它应该被映射的字符替换。
请帮助我完成正则表达式验证部分。
您可以使用这个正则表达式 [^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)
您可以通过 Unicode normalization 执行此操作,然后使用正则表达式删除连字标记。
查看此问题及其接受的答案:"Convert Unicode to ASCII without changing the string length (in Java)"