正则表达式是否仅用一个字符替换两个(或多个)连续字符?

在java中,可以使用哪个正则表达式来替换这些,
例如:

之前:
阿阿巴
之后:
ab

之前:
14442345
之后:
142345

谢谢

在perl中

s/()\1+/$1/g;

我想,如果java有与perl兼容的正则表达式,它也应该可以工作

编辑:这就是它的意思

s{
()#匹配任何角色(并捕获它)
\1#如果后面跟着它本身
+#一次或多次
}{$1}gx;#并用第一个捕获的字符替换所有内容(使用g修饰符替换所有出现的内容)

编辑:正如其他人所指出的,Java中的语法将变得

original.replaceAll(“()\\1+”,“$1”);

请记住退出\1

发表评论