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})