IT/Software 도서

벤 포터 '정규표현식, 손에잡히는 정규표현식' 책 정리 요약

데브렉스 2012. 2. 6. 17:46
반응형

[느낌]

DB Query에서 많이 사용되는 더 나아가 다양한 텍스트 조작을 사용하는 환경이라면, 그리고 정규식을 한번쯤 꼼꼼히 보고 가고 싶다면 볼 만한 책이다. 예제와 함께 쉽게 잘 설명하고 있다.

 

[정리]

정규 표현식은 텍스트를 조작하는 가장 강력한 도구 중 하나다. 정규 표현식 언어는 정규 표현식을 구성하는데 쓰인다. (이렇게 구성된 실제 문자열을 저규 표현식이라고 부른다). 그리고 정규 표현식은 검색과 치환에 모두 사용된다.


== 정규 표현식으로 해결하는 일반적인 문제들 ==
- 이메일 주소 정규식 : (\w+\.)*\w+@(\w+\.)+[A-Za-z]+
- 주민등록 번호 : \d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])-[1-4]\d{6}

- HTML 주석 정규식 : <!-{2,}.*?-{2,}>
- 자바스크립트 주석 정규식 : //.*
- 신용카드 마스터카드 번호 : 5[1-5]\d{14}
- 신용카드 비자카드 번호 : 4\d{12}(\d{3})?
- 신용카드 아메리칸익스프레스 번호 : 3[47]\d{13}
- 신용카드 디스커버 번호 : 6011\d{12}
- 신용카드 다이너스클럽 번호 : (30[0-5]|36\d|38\d)\d{11}
- 신용카드 번호 모두 : (5[1-5]\d{14})|(4\d{12}(\d{3})?)|(3[47]\d{13})|6011\d{12})|((30[0-5]|36\d|38\d)\d{11})


== 기본메타 문자 ==
.       모든 문자와 일치
|       왼쪽 혹은 오른쪽과 일치
[]     문자 집합 구성원 중 하나와 일치
[^]   문자 집합 구성원응ㄹ 제외하고 일치
-      범위 정의([A-Z와 같은 형태)
\     다음에 오는 문자를 이스케이프

== 수량자 ==
*        문자가 없는 경우나 하나 이상 연속하는 문자 찾기 (탐용적 수량자)
*?      게으른 * 문자
+        문자하나이상찾기 (탐요적 수량자)
+?      게으른 + 문자
?        문자가 없거나 하나인 문자 찾기
{n}     정확히 요소와 n번 일치
{m,n} 요소와 m에서 n번 일치
{n,}    요쇼와 n번 이상 일치
{n,}?  게으른 {n,}

== 위치지정 ==
^       문자열의 시작과 일치
\A    문자열의 시작과 일치
$       문자열의 끝과일치
\Z    문자열의 끝과 일치
\<    단어의 시작과 일치
\>    단어의 끝과 일치
\b    단어의 경계와 일치
\B    \b와 반대로 일치

== 특수한 문자 ==
[\b] 역스페이스
\c    제어문자와 일치
\d    모든 숫자와 일치
\D    \d와 반대
\f     페이지 넘기기
\n    줄바꿈
\r     캐리지 리턴
\s    공백 문자와 일치
\S    \s와 반대로 일치
\t     탭
\v    수직 탭
\w   영숫자 문자나 밑줄과 일치
\W   \w와 반대로 일치
\x   16진수 숫자와 일치
\0    8진수 숫자와 일치

== 역참조와 전후방탐색 ==
()      하위 표현식 정의
\1     첫 번째 일치한 하위 표현식, 두 번째 일치한 하위 표현식은 \2 표기하는 방식
?=      전방탐색
?<=    후방탐색
?!       부정형 전방탐색
?<!    부정형 후방탐색
?(backreference)true   조건 지정
?(backreference)true    else 표현식 조건 지정

== 대소문자 변환 ==
\E     \L 혹은 \U 변환을 끝냄
\I      다음에 오는 글자를 소문자로 변환
\L     \E를 만날때까지 모든 문자를 소문자로 변환
\u     다음에 오는 글자를 대문자로 변환
\U     \E를 만날때까지 모든 문자를 대문자로 변환

== 변경자 ==
(?m)   다중행 모드

 

 

반응형