Java正则表达式怎么匹配连续多个同一字符

Mervyn 2008-04-22 03:46:05
例如
我想将+++++++++===========替换成+= 怎么匹配?
...全文
1492 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
john4656 2008-04-24
  • 打赏
  • 举报
回复
不清楚呀
eatingbirdmiemies 2008-04-23
  • 打赏
  • 举报
回复
回4楼,就是符号多了才用Set咩...
xuxu210 2008-04-23
  • 打赏
  • 举报
回复
不知道
梅小西Echo 2008-04-22
  • 打赏
  • 举报
回复
学习一下
Mervyn 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kingssq 的回复:]
(.)\1+
[/Quote]

啊呀呀 不好意思 没看到阿 差点落下你 哈哈 别-_-!!! 笑笑 哈 ^_^

10楼的人家有个框,看得清楚 哈哈
yuanjun_xf 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 Mervyn 的回复:]
引用 11 楼 anqini 的回复:

这不就是EL吗?非得用Pattern和Matcher才是正则吗?



用replaceAll和Pattern不是一样的么?


引用 10 楼 bao110908 的回复:
Java code
str = str.replaceAll("(.)\\1+", "$1");




呀呀 这个对了,就要这个 谢谢。
[/Quote]
kingssq 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kingssq 的回复:]
(.)\1+
[/Quote]
-_-!!!
Mervyn 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 anqini 的回复:]

这不就是EL吗?非得用Pattern和Matcher才是正则吗?

[/Quote]

用replaceAll和Pattern不是一样的么?




[Quote=引用 10 楼 bao110908 的回复:]
Java code
str = str.replaceAll("(.)\\1+", "$1");


[/Quote]

呀呀 这个对了,就要这个 谢谢。
anqini 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 Mervyn 的回复:]
引用 8 楼 jiangnaisong 的回复:

答:那就这样了:(多种符号:个数总是有限的吧)
String s1 = s.replaceAll("([符号1]+ ¦[符号2]+ ¦[符号3]+ ¦[符号4]+)", "$1");

以上仅供你参考



倒是可以用了,但是为了追求完美,还是想知道正则怎么写。
[/Quote]

这不就是EL吗?非得用Pattern和Matcher才是正则吗?
  • 打赏
  • 举报
回复
str = str.replaceAll("(.)\\1+", "$1");
Mervyn 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jiangnaisong 的回复:]

答:那就这样了:(多种符号:个数总是有限的吧)
String s1 = s.replaceAll("([符号1]+ ¦[符号2]+ ¦[符号3]+ ¦[符号4]+)", "$1");

以上仅供你参考

[/Quote]

倒是可以用了,但是为了追求完美,还是想知道正则怎么写。
云上飞翔 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Mervyn 的回复:]
引用 5 楼 jiangnaisong 的回复:
引用 3 楼 anqini 的回复:

Java code
String s = "+++++++++===========";
String s1 = s.replaceAll("[+]+", "+").replaceAll( "[=]+","=");

答:还是anqini的好。顶!


如果有多种符号怎么办?
[/Quote]
答:那就这样了:(多种符号:个数总是有限的吧)
String s1 = s.replaceAll("([符号1]+|[符号2]+|[符号3]+|[符号4]+)", "$1");

以上仅供你参考
kingssq 2008-04-22
  • 打赏
  • 举报
回复
(.)\1+
Mervyn 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jiangnaisong 的回复:]
引用 3 楼 anqini 的回复:

Java code
String s = "+++++++++===========";
String s1 = s.replaceAll("[+]+", "+").replaceAll( "[=]+","=");

答:还是anqini的好。顶!
[/Quote]

如果有多种符号怎么办?
云上飞翔 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 anqini 的回复:]
Java code
String s = "+++++++++===========";
String s1 = s.replaceAll("[+]+", "+").replaceAll( "[=]+","=");
[/Quote]
答:还是anqini的好。顶!
Mervyn 2008-04-22
  • 打赏
  • 举报
回复
Set类太麻烦了。

如果很多符号不止是+和=呢?还有# & 什么的都要去掉怎么办?
anqini 2008-04-22
  • 打赏
  • 举报
回复

String s = "+++++++++===========";
String s1 = s.replaceAll("[+]+", "+").replaceAll( "[=]+","=");
kingssq 2008-04-22
  • 打赏
  • 举报
回复
用反向引用。
(\+)\1+(=)\2+
eatingbirdmiemies 2008-04-22
  • 打赏
  • 举报
回复
想去掉所有重复的咩?
不用正则的话,可以用Set类.

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧