달력

11

« 2024/11 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2017. 3. 5. 21:56

비참조 그룹 정규표현식2017. 3. 5. 21:56

정규표현식에서는 괄호( ex) (Test) )를 사용해서 그룹을 지정할 수 있다. 

나중에 사용하는 도구에 따라 $1 또는 \1 의 표현으로 괄호안의 표현식을 참조할 수 있는데, 

해당 내용을 메모리에 저장하기 때문에 성능에 영향을 줄 수 있다. 

만일 괄호 안의 내용을 나중에 참조할 필요가 없다면, 비참조 그룹을 활용하여 성능향상에 도움을 줄 수 있다.

그룹을 비참조 그룹으로 만들기 위해서는 왼쪽 괄호 다음에 '?:'를 적으면 된다.

예를 들어 (the|THE)(?:the|THE)라고 적음으로써 비참조 그룹화시킬 수 있다.

만일 대소문자 구분 없이 모두 찾는 경우라면 옵션을 사용할 텐데, 그 때는 다음과 같이 쓰면 된다. 

(?i)(?:the) = (?:(?i)the)=(?i:the)


<참고>

(?>the)처럼 쓰는 것을 원자그룹이라고 하는데, 백트래킹을 사용하는 정규표현식 엔진에서 

원자그룹에 해당하는 부분은 백트래킹을 하지 않게 할 수 있다.

'정규표현식' 카테고리의 다른 글

수량자  (0) 2017.07.30
sed로 텍스트 바꾸기  (0) 2017.04.28
문자클래스  (0) 2017.04.21
패턴변경자(정규표현식 옵션)  (0) 2017.02.18
Regular Expressions을 공부하자  (0) 2017.02.12
:
Posted by SK