首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正则表达式只用一个替换两个(或更多)连续的字符?

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

Stack Overflow用户
提问于 2017-12-27 01:57:05
回答 3查看 0关注 0票数 0

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

前:aabbb 后:AB

前:14442345后:142345

谢谢

EN

回答 3

Stack Overflow用户

发布于 2017-12-27 09:46:57

在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”

票数 0
EN

Stack Overflow用户

发布于 2017-12-27 10:02:43

String a = "aaabbb";
String b = a.replaceAll("(.)\\1+", "$1");
System.out.println("'" + a + "' -> '" + b + "'");
票数 0
EN

Stack Overflow用户

发布于 2017-12-27 11:32:11

匹配模式(在必须转义的Java/语言中):

(.)\\1+

或者(在语言中,您可以使用不将\作为转义字符的字符串)

(.)\1+ 

更换*

$1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档