본문 바로가기

4.개발 및 운영 환경

Regular Expression Tip & Tech

작성일: 2009.09.28 (http://ospace.tistory.com/), ospace114@엠팔.컴

인터넷에 떠도는 Regular Expression 을 간단하게 정리해 보았다. 물론 좋은 것이 있다면 계속 정리할 계획이다.

이메일(email, 전자우편 주소)

/^[a-z0-9_+.-]+\\@([a-z0-9-]+\\.)+[a-z0-9]{2,4}$/
/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,3}$/

URL

/^(file|gopher|news|nntp|telnet|https?|ftps?|sftp):\\/\\/([a-z0-9-]+\\.)+[a-z0-9]{2,4}.*$/
/^(?:^|")(http|ftp|mailto):(?://)?(\w+(?:[\.:@]\w+)*?)(?:/|@)([^"\?]*?)(?:\?([^\?"]*?))?(?:$|")$/

XML 태그

HTML의 <>를 매치합니다. 그리고 중간에 오는 문자열을 획득하죠. 단, 한줄 짜리 테그에 attribute가 있는 경우는 안됨.

/\\<(/?[^\\>]+)\\>/
/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/
/<[^<>]+><(\w+)[^>]*?>(.*?)</\1>/

Img 태그

/.*<img src=\"http://(.*)\" alt.*/

전화 번호

/(\\d{3}).*(\\d{3}).*(\\d{4})/

날짜 - 예, 3/28/2007:

/^\\d{2}\\/\\d{2}\\/\\d{2,4}$/

jpg, gif 또는 png 확장자를 가진 그림 파일명:

/([^\\s]+(?=\\.(jpg|gif|png))\\.\\2)/

1부터 50 사이의 번호 - 1과 50 포함:

/^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$/

16 진수로 된 색깔 번호:

/#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?/

적어도 소문자 하나, 대문자 하나, 숫자 하나가 포함되어 있는 문자열 - 올바른 암호 형식을 확인할 때 사용될 수 있음:

/(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}/

한글

/[가-힣ㄱ-ㅎㅏ-ㅣ]+/

한글2

/[ㄱ-ㅎ|ᄀ-ᄒ|ㅏ-ㅣ|가-힣|ᆞ|ᆢ]+/

ipv4 주소

/25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}$/

ipv6 주소

/(?:(?:[0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,7}:|(?:[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,5}(?::[0-9a-fA-F]{1,4}){1,2}|(?:[0-9a-fA-F]{1,4}:){1,4}(?::[0-9a-fA-F]{1,4}){1,3}|(?:[0-9a-fA-F]{1,4}:){1,3}(?::[0-9a-fA-F]{1,4}){1,4}|(?:[0-9a-fA-F]{1,4}:){1,2}(?::[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:(?:(?::[0-9a-fA-F]{1,4}){1,6})|:(?:(?::[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(?::[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(?:ffff(?::0{1,4}){0,1}:){0,1}(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])|(?:[0-9a-fA-F]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/

mac 주소

/(?:[0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$/

Username

위의 것은 소문자, 숫자, 언더바, 하이픈이 들어간 16자리 문자열
아래 것은 소문자, 대문자, 숫자, 언더바, 하이픈이 들어간 16자리 문자열

^[a-z0-9_-]{3,16}$
^[\w_-]{3.16}$

Hex value

앞의 #이 있거나 없을 수 있고, 소문자와 숫자가 총 6자리 혹은 3자리를 가질 수 있음.

^#?([a-f0-9]{6}|[a-f0-9]{3})$

Trimming Whitespace

^[ \t]+

이 것은 앞쪽 whitespace

[ \t]+$

이 것은 뒤쪽 whitespace
조합하면

^[ \t]+|[ \w]+$

줄바꿈기호 없애려면

[ \t\r\n]

Numeric Range

000~255

^([01][0-9][0-9]|2[0-4][0-9]|25[0-5])$ 

0 or 000~255

^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$ 

0 or 000~127

^(0?[0-9]?[0-9]|1[0-1][0-9]|12[0-7])$ 

0~999

^([0-9]|[1-9][0-9]|[1-9][0-9][0-9])$ 

000~999

^[0-9]{3}$ 

0 or 000~999

^[0-9]{1,3}$ 

1~999

^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$

001~999

^(00[1-9]|0[1-9][0-9]|[1-9][0-9][0-9])$

1 or 001~999

^(0{0,2}[1-9]|0?[1-9][0-9]|[1-9][0-9][0-9])$

0 or 00~59

^[0-5]?[0-9]$

0 or 000~366

^(0?[0-9]?[0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])$
반응형

'4.개발 및 운영 환경' 카테고리의 다른 글

계속 추가되는 값의 평균계산하기  (0) 2009.10.09
시간 연산하기  (0) 2009.10.09
[NSIS] 다국어 라이센스 표시  (0) 2009.09.28
Spec1  (0) 2009.07.25
NSIS에서 윈도우 방화벽 제어 플러그인  (0) 2009.07.16