【发布时间】:2012-01-23 10:38:54
【问题描述】:
我需要一个表达式来提取一些替代方案。输入是:
asd11sdf33sdf55sdfg77sdf
我需要 11 33 和 55 但不是 77。
我先试了:
.*(((11)|(33)|(55)).*)+.*
所以我只得到了 55。但是懒惰(不贪心)
.*?(((11)|(33)|(55)).*)+.*
我只有 11 个。如何获得全部?
问候托马斯
【问题讨论】:
-
您的要求不清楚。您是否要断言字符串中存在 11、33 和 55,但不存在 77?数字的顺序是否相关?你到底想达到什么目标?
-
我想要全部 11 或 33 或 55。在 aa33ss33dd33ee 我需要 3 次 33
-
我使用:Pattern p = Pattern.compile("(11|33|55)");匹配器 m = p.matcher("asd11sdf33sdf55sdfg77sdf");整数开始 = 0; List
匹配 = new ArrayList (); while (m.find()) {matches.add(m.group()); } System.err.println("matches = " + 匹配);
标签: java regex find matcher regex-greedy