我想要实现一个功能,如下
"aaaaa123baaasdgaa32a2dfgaaaa" * 取出字符串中连续的5个、1个、3个a的字符串 * 最后输出 * aaaaa * aaa * a
我自己用了如下正则
1 String regex = "a{5}||a{3}||a{1}";
2 /* 上面这个正则输出下面
3 * aaaaa
4 aaa
5 a
6 a
7 a
8 aaa
9 a
10 不符合要求
11 */
12
13 String str = "aaaaa123baaasdgaa32a2dfgaaaa";
14
15 Matcher m = Pattern.compile(regex).matcher(str);
16
17 while(m.find())
18 System.out.println(m.group());
我知道输出结果错误的原因是因为字符串中的aaaa是连续4个a,符合正则表达式或运算的最后一个表达式:a{1}。但是我现在想要实现的就只是输出连续5个、3个和一个a。请各位大神指教,并想知道关于正则表达式中的逻辑运算符方面的心得。帮助文档中的没有介绍啊!如果问的不够详细也请回复。谢谢
添加回答
举报
0/150
提交
取消