"") 全部。后跟一个带有 .后跟空格,后跟 char (\.([a-zA-Z]-->".$-6ren">
gpt4 book ai didi

java - 如何替换多个匹配的正则表达式

转载 作者:搜寻专家 更新时间:2023-11-01 02:23:00 25 4
gpt4 key购买 nike

我有一组正则表达式替换,需要应用于一组字符串,

例如:

  1. 所有带单个空格的多个空格 ("\s{2,}"--> "")
  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(或类似的东西,例如 Pattern/Matcher)来概括这些替换

我关注了Java Replacing multiple different... ,

但问题是我的正则表达式不是简单字符串

最佳答案

您有这 2 个 replaceAll 调用:

s = s.replaceAll("\\s{2,}"," ");
s = s.replaceAll("\\.([a-zA-Z])",". $1");

您可以像这样将它们组合成一个 replaceAll:

s = s.replaceAll("\\s{2,}|(\\.)(?=[a-zA-Z])", "$1 ");

RegEx Demo

关于java - 如何替换多个匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34180794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com