当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《正则表达式只用一个替换两个(或多个)连续字符?》经验,为你挑选了2个好方法。

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

之前:aaabbb之后:ab

之前:14442345之后:142345

谢谢!



1> Pat..:

在perl

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

诀窍,我假设如果java有perl兼容的regexp它也应该工作.

编辑:这就是它的含义

s {
    (.)  # match any charater ( and capture it )
    \1   # if it is followed by itself 
    +    # One or more times
}{$1}gx;  # And replace the whole things by the first captured character (with g modifier to replace all occurences)

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

original.replaceAll("(.)\\1+", "$1");

记得逃避\ 1



2> Jorge Ferrei..:
String a = "aaabbb";
String b = a.replaceAll("(.)\\1+", "$1");
System.out.println("'" + a + "' -> '" + b + "'");

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有