[Regex]자주 사용하는 정규표현식
08 March 2014
자주 사용하는 정규 표현식
필요할 때 참고할 수 있도록 정규 표현식들을 기록합니다.
URL
프로토콜, 호스트 이름, 포트 번호 및 경로가 일치하는 정규 표현식입니다.
정규 표현식)
https?://(\w*:\w*@)?[-\w.]+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?
예문)
http://www.forta.com/blog
https://www.forta.com:80/blog/index.html
http://www.forta.com
http://ben:password@www.forta.com/
이메일 주소
이메일 주소를 검사하는 정규 표현식입니다.
정규 표현식)
(\w+\.)*\w+@(\w+\.)+[A-Za-z]+
예문)
My name is Ben Forta, and my email address is ben@forta.com.
결과)
ben@forta.com
위의 패턴은 대부분의 이메일 주소를 검사할 수 있지만 호스트 이름에 IP 주소가 들어간 경우는 불가능합니다.
HTML 주석
HTML 페이지에서 주석 <!-- -->
를 찾는 정규식입니다.
정규 표현식)
<!-{2,}.*?-{2,}>
예문)
<!-- Start of page -->
<HTML>
<!-- Start of head -->
<HEAD>
<TITLE>My Title</TITLE><!-- page title -->
</HEAD>
<!-- body -->
<BODY>
</BODY>
주석
일반적인 프로그래밍 언어에서 주석은 //
, /*
로 시작합니다. 다음은 그 주석들을 찾는 정규 표현식입니다.
정규 표현식)
\/\/.*
예문)
//This is comment
var test = 1111;
/* This is comment */
var tmp = test;
신용카드 번호
정규 표현식으로는 신용카드 번호를 완전히 검증하지는 못합니다. 하지만 정규 표현식 검증으로 카드 번호의 숫자가 많거나 적은 경우처럼 잘못된 숫자를 검출하는데는 유용합니다. 다음은 신용카드 번호를 찾는 정규식입니다.
예문)
MasterCard: 5212345678901234
Visa 1:4123456789012
Visa 2:4123456789012345
Amex: 371234567890123
Discover: 6011123456789012
마스터카드 정규 표현식)
마스터카드는 첫 숫자는 항상 5이며 두번째 숫자는 1-5입니다. 다음에는 열네 자리 숫자와 일치합니다.
5[1-5]\d{14}
비자카드 정규 표현식)
비자카드는 4로 시작을 하고 열세 자리나 열여섯 자리 숫자로 이루어집니다. 하지만 열네 자리나 열다섯 자리인 경우는 없습니다.
4\d{12}(\d{3})?
아메리칸익스프레스카드 정규 표현식)
아메리칸익스프레스카드는 34나 37로 시작을 하며 다음 열세자리 숫자와 일치합니다.
3[47]\d{13}
디스커버 정규 표현식)
6011로 시작을 하며 다음 열두 자리 숫자와 일치합니다.
6011\d{12}
위의 카드 중 하나와 맞는지 확인합니다.
정규 표현식)
(5[1-5]\d{14})|(4\d{12})(\d{3}?)|3[47]\d{13}|(6011\d{12})