是否可以知道流/字符串是否包含可以匹配正则表达式的输入.
例如
String input="AA"; Pattern pat=Pattern.compile("AAAAAB"); Matcher matcher=pat.matcher(input); //<-- something here returning true ?
要么
String input="BB"; Pattern pat=Pattern.compile("AAAAAB"); Matcher matcher=pat.matcher(input); //<-- something here returning false ?
谢谢
解决方法
是的,Java提供了一种方法.首先,您必须调用一个标准方法来应用正则表达式,如matches()或find().如果返回false,可以使用hitEnd()方法来确定一些较长的字符串是否可以匹配:
String[] inputs = { "AA","BB" }; Pattern p = Pattern.compile("AAAAAB"); Matcher m = p.matcher(""); for (String s : inputs) { m.reset(s); System.out.printf("%s -- full match: %B; partial match: %B%n",s,m.matches(),m.hitEnd()); }
输出:
AA -- full match: FALSE; partial match: TRUE BB -- full match: FALSE; partial match: FALSE