如何在Java中找到多个Pattern(使用Matcher)

时间:2012-03-15 15:47:37

标签: java regex

假设我有String,说one two three one one two one。 现在我使用PatternMatcher来查找Pattern中的任何特定String。 像这样:

Pattern findMyPattern = Pattern.compile("one");
Matcher foundAMatch = findMyPattern.matcher(myString);
while(foundAMatch.find())
           // do my stuff

但是,假设我想找到多种模式。对于我拍摄的示例String,我想找到onetwo。现在它是一个非常小的字符串,所以可能的解决方案是使用另一个Pattern并找到我的匹配。但是,这只是一个小例子。有没有一种有效的方法来实现它,而不是仅仅在Pattern s的所有集合中循环尝试?

2 个答案:

答案 0 :(得分:6)

使用正则表达式的强大功能:更改模式以匹配onetwo

Pattern findMyPattern = Pattern.compile("one|two");
Matcher foundAMatch = findMyPattern.matcher(myString);
while(foundAMatch.find())
           // do my stuff

答案 1 :(得分:0)

这不会解决我的问题,这样我们就可以将(一个|两个)改为一个特定的字符串。

但我的要求是改变 模式一 - >三&二 - >四个