我需要查找并替换字符串中的重复模式。更糟糕的是,我需要一个字符串,比如:
Test - - - - - - - - - - - test
成为
Test - test
但由于我不知道这个模式重复了多少次,我找不到答案。我得到的最接近的是:
((- -)|( - ))+?
但它在上面的例子中失败了。
我在上得到的另一个"几乎"的结果
([- ]+?)1+
但第二个匹配(我不想要(:
test ---- test
有什么办法吗?
根据我的评论:
(s-)+
替换为$1
。参见此处
在您尝试((- -)|( - ))+?
的第一个模式中,您得到了多个匹配,使得量词+?
不贪婪。
在第二模式([- ]+?)1+
中,字符类[- ]+
被重复,其可以多次匹配相同的字符。
您可以匹配单个连字符,并重复匹配空格和连字符1次以上,以获得不分组的连续匹配。
-(?: -)+
更换时使用-
Regex演示