问题很简单,将某种语言中的字符串删除变音符号。例如,采用“t\xc3\xa9l\xc3\xa9phone”会产生结果“telephone”。
\n\n在Java中我可以使用这样的方法:
\n\n public static String removeAccents(String str){\n return Normalizer.normalize(str, Normalizer.Form.NFD).replaceAll("\\\\p{InCombiningDiacriticalMarks}+", "");\n}\nRun Code Online (Sandbox Code Playgroud)\n\n它工作正常,但在 scala 中却不行...我尝试了如下代码:
\n\nval str = Normalizer.normalize("t\xc3\xa9l\xc3\xa9phone",Normalizer.Form.NFD)\nval exp = "\\\\p{InCombiningDiacriticalMarks}+".r\nexp.replaceAllIn(str,"")\nRun Code Online (Sandbox Code Playgroud)\n\n它不起作用!
\n\n我想,我在 Scala 中使用正则表达式时遗漏了一些东西,所以任何帮助将不胜感激。
\n我使用标准化器遇到了同样的问题。从Apache Commons StringUtils找到了解决方案中找到了 stripAccents 形式的
\n\n val str = stripAccents("t\xc3\xa9l\xc3\xa9phone")\n println(str)\nRun Code Online (Sandbox Code Playgroud)\n\n这将产生“电话”。希望这对某人有帮助!
\n| 归档时间: |
|
| 查看次数: |
3470 次 |
| 最近记录: |