메타문자 그룹화

(2024-10-01)

전방 탐색, 후방 탐색


1. [정규표현식 메타문자]  서브 패턴 (subexpression) (그룹화) (캡처그룹, capture group)  :  ( )

  ※ 서브 패턴 또는 캡처에 의한 캡처그룹화는, 부분을 감싸서 구별짓고, 기억하여, 이를 활용키 위함
     - 例) color 또는 colour 매치하려면, col(o|ou)r
        . 여기서, 캡처를 지시하는 괄호 (pattern)는, 
        . 캡처 그룹(capture group)을 만들어, 이를 통해 매칭된 내용을 기억, 활용코자하는 것임

  ㅇ 주요 역할
     - 문자열 (서브패턴) 위주의 탐색
        . 서브 패턴을 만들어 재활용 할 때 유용
     - 일치한 문자열 (서브패턴, 그룹)의 저장 (캡처) 및 재활용
        . 검사 결과의 임시 저장 후, 번호를 붙여, 다시 불러쓸 수 있음 (backreference : 역 참조)
           .. 그룹으로 묶은 패턴의 검사 결과 뒤에, 수량자를 붙여, 어떤 추가 작업에 활용 가능
     - 검사 결과의 저장 또는 비 저장 선택 가능  ☞ 아래 2.번항 참조
     - 탐색 방향을 달리 정할 수 있음


2. [정규표현식 메타문자]  그룹화 검사 결과의 저장(캡처) 또는 비 저장(논 캡처,비 참조) 구분

  ㅇ 기본적인 그룹화 : (), (?:)
     - 매치 결과를 `캡처(저장)하는` 그룹화, ()
     - 매치 결과를 `캡처(저장)하지 않는` 그룹화, (?: ) 또는 (\% \)


3. [정규표현식 메타문자]   탐색 방향까지도 지정 가능한, 그룹화 기능의 확장

  ※ 통상의 정규표현식은, 텍스트매칭하지만, 
     - 때때로, 매칭텍스트의 위치 만을 표시하고 싶을 때가 있음
        . 문자열이 아닌 위치에 일치시키고, 일치 결과의 위치를 반환함
        . 이때, 반환되는 문자가 없으므로, 반환 길이는 0 임
     - 이렇게되면, 탐색 방향(전방 탐색,후방 탐색)을 결정하는 그룹화가 가능하게 됨
     - 한편, 그룹화 안에, 리터럴(문자열)이나 메타문자를 포함할 수 있음

  ㅇ 긍정형 전방탐색 (positive lookahead)  :  (?=)
     - 전방 탐색 문자열 (?=regex)인 위치로부터 앞에서(순방향) 찾음
        . 例) 1000원  =>  .+(?=원)  =>  1000
        . 例) http://www.example.com  =>  .+(?=:)  =>  http
        . 例) abracadabra  =>  a(?=..a)  =>  abracadacra : 처음`abra` 및 끝`acra`

  ㅇ 부정형 전방탐색 (negative lookahed)  :  (?!) 
     - 전방탐색 문자열 (?!regex)이 아닌 위치로부터 앞에서(순방향) 찾음
        . 例) hello world helloabc hello123  =>  hello(?!abc)  
              =>  hello world helloabc hello123
           .. `hello world`,`hello123`은 매칭되지만, `helloabc`는 비 매칭

  ㅇ 긍정형 후방탐색 (positive lookbehind)  :  (?<=)
     - 후방탐색 문자열 (?<=regex)인 위치로부터 뒤에서(후방향) 찾음
        . 例) Price: USD100  =>  (?<=USD)\d+  =>  100
           .. (?<=USD) 뒤에서 하나 이상의 숫자(100)를 찾음

  ㅇ 부정형 후방탐색 (negative lookbehind)  :  (?<!) 
     - 후방탐색 문자열 (?<!regex)이 아닌 위치로부터 뒤에서(후방향) 찾음
        . 例) abc로 끝나지 않은 단어 찾기
           .. xyz123 xyzabc xyzdef  =>  \w+(?<!abc)\b  =>  xyz123 xyzdef

  ※ 단, 자바스크립트 언어는, 후방 탐색을 지원 안함

[정규표현식]1. 정규 표현식   2. 메타 문자   3. 메타문자 수량자   4. 메타문자 그룹화   5. 메타문자 앵커   6. 정규표현식 활용 기초   7. 정규표현식 예  


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)          편집 후원          편집 이력
  1. Top (분류 펼침)      :     1,591개 분류    6,512건 해설