정규표현식에서는 괄호( 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 |