정규 표현식 예제들
== 정규 표현식으로 해결하는 일반적인 문제들 ==
- 이메일 주소 정규식 : (\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) 다중행 모드
출처: 정규식 요약