在java中打印正则表达式匹配

所以我有一个IP地址作为字符串。 我有这个正则表达式(\d{1-3})\.(\d{1-3})\.(\d{1-3})\.(\d{1-3})如何打印匹配组?

谢谢!

 import java.util.regex.*; try { Pattern regex = Pattern.compile("(\\d\\{1-3\\})\\.(\\d\\{1-3\\})\\.(\\d\\{1-3\\})\\.(\\d\\{1-3\\})"); Matcher regexMatcher = regex.matcher(subjectString); while (regexMatcher.find()) { for (int i = 1; i <= regexMatcher.groupCount(); i++) { // matched text: regexMatcher.group(i) // match start: regexMatcher.start(i) // match end: regexMatcher.end(i) } } } catch (PatternSyntaxException ex) { // Syntax error in the regular expression } 

如果您使用Pattern和Matcher来执行正则表达式,那么您可以使用group(int group)方法向Matcher请求每个组

所以:

 Pattern p = Pattern.compile("(\\d{1-3}).(\\d{1-3}).(\\d{1-3}).(\\d{1-3})"); Matcher m = p.matcher("127.0.0.1"); if (m.matches()) { System.out.print(m.group(1)); // m.group(0) is the entire matched item, not the first group. // etc... }