Java正则表达式捕获组取消重复
Stringstr="IIIIIlllllooooovvvveeeeyyyooooouuuuuu!!!!";Stringstr1=str.replaceAll("(.)\...
String str="IIIII lllllooooovvvveeee yyyooooouuuuuu!!!!";
String str1=str.replaceAll("(.)\\1+","$1");
System.out.println(str1);
为什么要用\\1,+不就是表示一次或多次吗?
String str2="IIIIII";
System.out.println(str2.replaceFirst("(I)+", "$1"));为什么这时候就不需要\\1? 展开
String str1=str.replaceAll("(.)\\1+","$1");
System.out.println(str1);
为什么要用\\1,+不就是表示一次或多次吗?
String str2="IIIIII";
System.out.println(str2.replaceFirst("(I)+", "$1"));为什么这时候就不需要\\1? 展开
展开全部
\\1是指第一个捕获组,即前面(.)捕获的那个字符。
追问
能详细点吗
追答
(.)\\1+ (.)匹配一个字符并捕获,\\1+匹配前面捕获的字符一次或多次,整个正则的功能就是匹配一个字符和它后面与它相同的一个或多个字符。$1即为捕获的那个字符。
(I)+ 匹配一个或多个I,捕获第一个I。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询