使用Pattern(而不是String)检查另一个String是否与正则表达式匹配

时间:2015-05-09 03:04:59

标签: java regex string

String有一个方便的方法matches(String regex)。但我即将检查大约10-100个匹配值。我不认为让Java为每个调用编译模式是非常有效的。相反,我想缓存已解析的模式并使用它。

但是,如何尽可能保持有效,使用Pattern对象和String来生成boolean,表明该字符串与模式匹配?

public static boolean patternMatches(String tested, Pattern regex) {
   ???
}

我想要这样做的第二个原因是我已经有一个接受字符串并检索文字字符串匹配的方法:

public MyClass[] findMatches(String substring) {
  ...
}

所以我想过载:

public MyClass[] findMatches(Pattern regex) {
  ...
}

1 个答案:

答案 0 :(得分:0)

Pattern有一个方法getMatcher,它返回一个描述匹配结果的对象。

Pattern pattern = Pattern.compile("pattern");
Matcher matcher = pattern.matcher("Matched string.");
boolean matches = matcher.matches();

因此我的方法是:

public static boolean patternMatches(String tested, Pattern regex) {
  return regex.matcher(tested).matches();
}