-
[Java] 정규표현식 캡처 그룹과 비캡처 그룹개발 지식/Java 2024. 1. 7. 11:32
정규표현식에서 그룹이란 ()로 감싸진 부분들을 의미한다.
캡처 그룹은 매칭 결과에서 해당 부분의 정보를 추출할 수 있는 그룹을 의미하고 비캡처 그룹은 해당 부분의 정보를 추출할 수 없는 그룹을 의미한다.
예시
String input = "A123 B456 C789"; Pattern pattern = Pattern.compile("([A-Z])(\\d+)"); Matcher matcher = pattern.matcher(input); while (matcher.find()) { System.out.println("전체 매칭: " + matcher.group(0)); // 전체 매칭 System.out.println("첫 번째 그룹: " + matcher.group(1)); // 첫 번째 그룹 (대문자) System.out.println("두 번째 그룹: " + matcher.group(2)); // 두 번째 그룹 (숫자) } Pattern pattern = Pattern.compile("(?:[A-Z])(\\d+)"); Matcher matcher = pattern.matcher(input); while (matcher.find()) { System.out.println("전체 매칭: " + matcher.group(0)); // 전체 매칭 System.out.println("첫 번째 그룹: " + matcher.group(1)); // 두 번째 그룹 (숫자) }
- 비캡처 그룹은 괄호안에 ?: 기호를 사용하여 나타낼 수 있고 위의 예시와 같이 matcher.group() 메서드로 해당 그룹의 정보를 추출할 수 없게 된다.
'개발 지식 > Java' 카테고리의 다른 글
[Java] 추상 클래스의 생성자 (0) 2023.12.03 [Java] 가변인자 (varargs) (0) 2023.11.15 [Java] 배열과 List 사이의 변환 (0) 2023.11.15 [Java] Arrays.asList()와 List.of()의 차이 (1) 2023.11.15 [Java] 정규표현식(Regular Expression, regex) (0) 2023.07.27