首页 > 解决方案 > Java Regex:用相等数量的另一个字符替换两个特定字符之间的字符

问题描述

用相同数量的“-”字符替换起始字符“+”和结束字符“+”之间的所有字符。
我的具体情况如下:

输入:+-+-+-+
输出:+-----+

String s = = "+-+-+-+";
s = s.replaceAll("-\\+-","---")

这是行不通的。如何在 Java 中实现输出?提前致谢。

标签: javaregex

解决方案


您可以使用环顾断言来使用此替换:

String repl = s.replaceAll("(?<=-)\\+(?=-)", "-");
//=> +-----+

正则表达式演示

(?<=-)\\+(?=-)将匹配 a+如果它被-两边包围。由于我们使用的是lookbehind和lookahead,因此我们不使用字符,这些只是断言。


推荐阅读