Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何替换像“quotá&引用;有相应的英文字母_Java_Regex_Unicode_Normalization_Unicode Normalization - Fatal编程技术网

Java 如何替换像“quotá&引用;有相应的英文字母

Java 如何替换像“quotá&引用;有相应的英文字母,java,regex,unicode,normalization,unicode-normalization,Java,Regex,Unicode,Normalization,Unicode Normalization,我有一个类似于á,é,í,ó,ú,ü,ñ的示例字符串,我想替换特殊字符,例如: 用a 带e的é 等等 我有一个地图,其中我将特殊字符作为键,并将其相应替换为值。 现在假设我将一个字符串“novás músíc”传递到方法中,正则表达式将验证它,如果找到任何特殊字符(我提到的那个),那么应该用映射字符替换它 请帮助我使用正则表达式验证部分。您可以使用此正则表达式[^0x00-0x7F] String source=args[0]; Pattern p = Pattern.compile("[^0x

我有一个类似于á,é,í,ó,ú,ü,ñ的示例字符串,我想替换特殊字符,例如:
用a
带e的é
等等

我有一个地图,其中我将特殊字符作为键,并将其相应替换为值。
现在假设我将一个字符串“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值()

您可以通过,后跟正则表达式来删除连字标记


查看此问题及其公认的答案:

您能显示您的代码吗?您知道这些不是“特殊”字符,对吗?如果改为novas,novás会拼写错误吗?现在是2015年,在当今世界,强制语言符合英语字母表是完全不必要和不适当的。正则表达式不是替换字符串中一组字符的合适工具。迭代字符并在需要时替换一个字符更高效、更简单。@T.J.Crowder这方面有有效的用例,例如,我在实现搜索工具时使用过它-我向用户显示的字符串始终是原始字符串,但在内部,我对文档和查询都进行了规范化,这样键盘不带重音的用户就可以在不带重音的情况下执行搜索,并使用重音查找文档,反之亦然。@IanRoberts:当然,只有少数非常有限的用例。但这种普遍认为这些角色在某种程度上是“特殊”的观点,最好是反驳,除非引用这样的案例。