我有一组正则表达式替换需要应用于一组字符串,
例如:
("\s{2,}" --> " ")(\.([a-zA-Z]-->". $1") 所以我会有这样的东西:
String s="hello .how are you?";
s=s.replaceAll("\\s{2,}"," ");
s=s.replaceAll("\\.([a-zA-Z])",". $1");
....
Run Code Online (Sandbox Code Playgroud)
它可以工作,但是想象一下我正在尝试替换一个长字符串上的 100 多个这样的表达式。不用说这有多慢。
所以我的问题是是否有一种更有效的方法来使用单个replaceAll(或类似的东西,例如模式/匹配器)来概括这些替换
我已经按照Java替换了多个不同的...,
但问题是我的正则表达式不是simple Strings。
您有这 2 个replaceAll电话:
s = s.replaceAll("\\s{2,}"," ");
s = s.replaceAll("\\.([a-zA-Z])",". $1");
Run Code Online (Sandbox Code Playgroud)
您可以将它们组合成一个,replaceAll如下所示:
s = s.replaceAll("\\s{2,}|(\\.)(?=[a-zA-Z])", "$1 ");
Run Code Online (Sandbox Code Playgroud)