5
그래서 IP 주소가 문자열입니다. 이 정규식을 가지고 있습니다 (\d{1-3})\.(\d{1-3})\.(\d{1-3})\.(\d{1-3})
일치하는 그룹을 어떻게 인쇄합니까?정규 표현식을 Java로 인쇄
감사합니다.
그래서 IP 주소가 문자열입니다. 이 정규식을 가지고 있습니다 (\d{1-3})\.(\d{1-3})\.(\d{1-3})\.(\d{1-3})
일치하는 그룹을 어떻게 인쇄합니까?정규 표현식을 Java로 인쇄
감사합니다.
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
}
당신이 당신의 정규식을 수행하는 패턴 및 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...
}
당신은 잡을 필요가 없습니다 PatternSyntaxException - 정규 표현식이 하드 코드 된 경우 (있는 것처럼). 구문에 오류가있는 경우 프로그램을 처음 실행할 때 찾을 수 있습니다. –
@mmyers : 습관의 힘 나는 생각하지만 당신 말이 맞습니다. –
카운터가 0으로 시작하지 않아야합니까? –