1. [정규표현식 메타문자] 서브 패턴 (그룹화) (캡처그룹, capture group) : ( )
※ (서브 패턴은, 부품별로 감싸서 구별짓기 위함)
- 例) color 또는 colour 매치하려면, col(o|ou)r
ㅇ 주요 특징 및 역할
- 문자열 (서브패턴) 위주의 탐색
. 서브 패턴을 만들어 재활용 할 때 유용
- 일치한 문자열 (서브패턴, 그룹)의 저장 (캡처) 및 재활용
. 검사 결과의 임시 저장 후, 번호를 붙여, 다시 불러쓸 수 있음 (backreference : 역 참조)
.. 그룹으로 묶은 패턴의 검사 결과 뒤에, 수량자를 붙여, 어떤 추가 작업에 활용 가능
- 검사 결과의 저장 또는 비 저장 선택 가능 ☞ 아래 2.번항 참조
- 탐색 방향을 달리 정할 수 있음
2. [정규표현식 메타문자] 그룹화 검사 결과의 저장(캡처) 또는 비 저장(논 캡처,비 참조) 구분
ㅇ 기본적인 그룹화 : (), (?:)
- 매치 결과를 `캡처(저장)하는` 그룹화, ()
- 매치 결과를 `캡처(저장)하지 않는` 그룹화, (?: ) 또는 (\% \)
(\% \)
3. [정규표현식 메타문자] 탐색 방향까지도 지정 가능한, 그룹화 기능의 확장
ㅇ 탐색 방향을 결정하는 그룹화
- 문자열이 아닌 위치에 일치시킴
. 일치 결과의 위치를 반환하게되며,
. 이때 반환되는 문자가 없으므로, 반환 길이는 0 임
ㅇ 구분
- 긍정형 전방탐색 : (?=)
. 지정한 탐색 문자열 (?=` `)의 위치를, 앞에서 뒤로 찾음
.. 例) 1000원 => .+(?=원) => 1000
.. 例) http://www.example.com => .+(?=:) => http
.. 例) abracadabra => a(?=..a) => abracadacra : 처음`abra` 및 끝`acra`
- 부정형 전방탐색 : (?!)
. 지정한 탐색 문자열 (?!=` `)이 아닌 위치를, 앞에서 뒤로 찾음
.. 例) (?!4869)\d{4}
(?!4869)\d{4} : 4869 이외 4자리 숫자 위치를 전방향(순방향)으로 찾음
- 긍정형 후방탐색 : (?<=)
. 지정한 탐색 문자열 (?<=` `)의 위치를, 뒤에서 앞으로 찾음
- 부정형 후방탐색 : (?<!)
. 지정한 탐색 문자열 (?<!` `)
이 아닌 위치를, 후방향(역방향)으로 찾음
* (전방 탐색 : lookahead, 후방 탐색 : lookbehind, 역 참조 : backreference)
1.
2.
3.
4.
5.
6.
7.