작성일: 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 |