如何优化java模式替换

时间:2015-10-28 06:50:02

标签: java regex

如何优化以下正则表达式,因为我必须运行超过十亿条记录

String test = "source[{\"name\": \"Mokole\", \"country\": \"CD\",\"location\": {\"lat\": .033333, \"lon\": -.583333}}]}\n";

String result = test.replace(" ."," 0.").replace("-.","-0.");

2 个答案:

答案 0 :(得分:2)

String result = test.replaceAll("([ -])\\.","$1\\0.")

您可以将2正则表达式合并到1

答案 1 :(得分:1)

因为我必须运行超过十亿条记录 ==>然后每次调用时都不要使用replaceAll()来创建模式。

使用static Pattern使用相同的正则表达式字符串创建Pattern.compile。然后为每个输入字符串调用pattern.matcher(inputString)。然后调用matcher.replaceAll()方法。

PS:在他的回答中使用VKS提到的正则表达式