我的问题涉及String类的replaceAll方法.
我的目的是用基本的" - "替换文本中的所有em-dashes.我知道em-dash的unicode角色是\ u2014.
我用以下方式尝试了它:
String s = "asd – asd";
s = s.replaceAll("\u2014", "-");
Run Code Online (Sandbox Code Playgroud)
但是,em-dash并没有被替换.我做错了什么?
Pet*_*tai 27
问题编辑后的次要编辑:
你可能根本就没有使用em-dash.如果你不确定你拥有什么,一个很好的解决方案是简单地找到并替换所有破折号... em或其他.看看这个答案,你可以尝试使用Unicode破折号标点符号来表示所有破折号==>\\p{Pd}
String s = "asd – asd";
s = s.replaceAll("\\p{Pd}", "-");
Run Code Online (Sandbox Code Playgroud)
使用上面的代码替换em破折号和常规破折号的工作示例.
参考:Unicode正则表达式
public String replaceAll(String regex, String replacement)
| 归档时间: |
|
| 查看次数: |
19483 次 |
| 最近记录: |