A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

李成强

初级黑马

  • 黑马币:23

  • 帖子:21

  • 精华:0

© 李成强 初级黑马   /  2015-4-21 15:08  /  626 人查看  /  8 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

String str = "aaabbbcccdddddd";
如果有3个且只有3个连续出现的字母则取出来,如上面的结果为“aaa”、“bbb”、“ccc”。
请问怎么使用正则表达式实现,我看了老毕的关于正则表达式的视频了,但是还是不知道怎么解这道题。

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

8 个回复

倒序浏览
回复一下吧
回复 使用道具 举报
String regex="\\w{2}";
应该是这样把

点评

不是这样的哦!  发表于 2015-4-22 11:19
回复 使用道具 举报
Pattern p = Pattern.compile("(\\w)\\1*");//单词字符出现一次或多次
Matcher m = p.matcher("aaabbbcccdddddd");
        while (m.find()) {
                if (m.group().length() <= 3)//长度小于等于3
                System.out.println(m.group());
        }

正则没学好  请大神们 帮忙改下
回复 使用道具 举报
jiao142857 发表于 2015-4-21 21:20
Pattern p = Pattern.compile("(\\w)\\1*");//单词字符出现一次或多次
Matcher m = p.matcher("aaabbbcccdd ...

您的这个也是一个解决办法,您是在用正则选择有2个或以上的连续字母,再排队掉大于3个的。还是想找找有没有直接正则就只找出来就是只带连续3个字母的

点评

(\\W)\\1{2} 亲测可用  发表于 2015-4-22 20:25
回复 使用道具 举报
的确好帖子,推荐加精华
回复 使用道具 举报
佩服你,能发这么好的帖子,厉害
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马