Java Regex-그룹 캡처
그룹 캡처는 여러 문자를 단일 단위로 처리하는 방법입니다. 그룹화 할 문자를 괄호 안에 배치하여 생성됩니다. 예를 들어 정규식 (개)은 문자 "d", "o"및 "g"를 포함하는 단일 그룹을 만듭니다.
캡처 그룹은 왼쪽에서 오른쪽으로 여는 괄호를 세어 번호가 매겨집니다. 예를 들어 ((A) (B (C))) 식에는 4 개의 그룹이 있습니다.
- ((A)(B(C)))
- (A)
- (B(C))
- (C)
식에 몇 개의 그룹이 있는지 확인하려면 matcher 개체에서 groupCount 메서드를 호출합니다. groupCount 메서드는int matcher의 패턴에있는 캡처 그룹의 수를 보여줍니다.
항상 전체 표현식을 나타내는 특수 그룹 인 그룹 0도 있습니다. 이 그룹은 groupCount에 의해보고 된 총계에 포함되지 않습니다.
예
다음 예제는 주어진 영숫자 문자열에서 숫자 문자열을 찾는 방법을 보여줍니다-
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches {
public static void main( String args[] ) {
// String to be scanned to find the pattern.
String line = "This order was placed for QT3000! OK?";
String pattern = "(.*)(\\d+)(.*)";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
} else {
System.out.println("NO MATCH");
}
}
}
이것은 다음 결과를 생성합니다-
산출
Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT300
Found value: 0