non-capturing
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
const text = "abcabc"; // 캡처 그룹 사용: 그룹이 캡처되어 배열의 두 번째 요소로 반환됩니다. const regexCapturing = /(abc)+/; const resultCapturing = text.match(regexCapturing); console.log(resultCapturing); // 출력 예시: [ 'abcabc', 'abc', index: 0, input: 'abcabc', groups: undefined ] // Non-capturing 그룹 사용: 그룹이 캡처되지 않습니다. const regexNonCapturing = /(?:abc)+/; const resultNonCapturing = text.match(regexNonCapturing); console.log(resultNonCapturing); // 출력 예시: [ 'abcabc', index: 0, input: 'abcabc', groups: undefined ] |
설명
- 캡처 그룹
(abc)
:/(abc)+/
은abc
가 한 번 이상 반복되는 패턴을 찾습니다.- 캡처 그룹이 사용되므로, 전체 매칭 결과 외에 마지막 반복에서 캡처된 그룹(
"abc"
)이 결과 배열의 두 번째 요소로 포함됩니다.
- Non-capturing 그룹
(?:abc)
:/(?:abc)+/
은 동일하게abc
가 한 번 이상 반복되는 패턴을 찾지만, 그룹 내부를 캡처하지 않습니다.- 결과 배열에는 전체 매칭 결과만 포함되며, 별도의 캡처 그룹 결과는 없습니다.
이처럼 (?: ... )
를 사용하면 그룹화는 하되 캡처하지 않아 결과에 불필요한 요소가 포함되지 않도록 할 수 있습니다.