public void testGroup(String text, String regexp, String[] output) { // RE2 Pattern p = Pattern.compile(regexp, options); Matcher matchString = p.matcher(utf8Slice(text)); assertEquals(true, matchString.find()); assertEquals(utf8Slice(output[0]), matchString.group()); for (int i = 0; i < output.length; i++) { assertEquals(output[i] == null ? null : utf8Slice(output[i]), matchString.group(i)); } assertEquals(output.length - 1, matchString.groupCount()); // JDK java.util.regex.Pattern pj = java.util.regex.Pattern.compile(regexp); java.util.regex.Matcher matchStringj = pj.matcher(text); // java.util.regex.Matcher matchBytes = // p.matcher(text.getBytes(Charsets.UTF_8)); assertEquals(true, matchStringj.find()); // assertEquals(true, matchBytes.find()); assertEquals(output[0], matchStringj.group()); // assertEquals(output[0], matchBytes.group()); for (int i = 0; i < output.length; i++) { assertEquals(output[i], matchStringj.group(i)); // assertEquals(output[i], matchBytes.group(i)); } }
public void testInvalidGroup(String text, String regexp, int group) { Pattern p = Pattern.compile(regexp, options); Matcher m = p.matcher(utf8Slice(text)); m.find(); m.group(group); fail(); // supposed to have exception by now }
public void testFind(String text, String regexp, int start, String output) { // RE2 Pattern p = Pattern.compile(regexp, options); Matcher matchString = p.matcher(utf8Slice(text)); assertTrue(matchString.find(start)); assertEquals(utf8Slice(output), matchString.group()); assertTrue(p.find(utf8Slice(text))); // JDK java.util.regex.Pattern pj = java.util.regex.Pattern.compile(regexp); java.util.regex.Matcher matchStringj = pj.matcher(text); assertTrue(matchStringj.find(start)); assertEquals(output, matchStringj.group()); }