我有一组正则表达式替换需要应用于一组字符串,
例如:
- 所有多个空格都带有单个空格
("\s{2,}" --> " ")
- 全部 。后跟一个 char 。后跟空格,后跟字符
(\.([a-zA-Z]-->". $1")
所以我会有这样的东西:
String s="hello .how are you?";
s=s.replaceAll("\\s{2,}"," ");
s=s.replaceAll("\\.([a-zA-Z])",". $1");
....
它可以工作,但是想象一下我正在尝试替换一个长字符串上的 100 多个这样的表达式。不用说这有多慢。
所以我的问题是是否有一种更有效的方法来使用单个replaceAll(或类似的东西,例如模式/匹配器)来概括这些替换
我已关注Java替换多个不同的...,
但问题是我的正则表达式不是simple Strings
.
你有这2个replaceAll
calls:
s = s.replaceAll("\\s{2,}"," ");
s = s.replaceAll("\\.([a-zA-Z])",". $1");
您可以将它们组合成一个replaceAll
像这样:
s = s.replaceAll("\\s{2,}|(\\.)(?=[a-zA-Z])", "$1 ");
正则表达式演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)