제목대로 자주 사용하는 정규 표현식을 매번 검색해서 사용하는 것은 효율적으로 나쁘기 때문에 정리해 보았습니다. 각 언어에서 정규 표현식의 샘플도 참고해 주세요.
정규 표현식
- Email 주소
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
- 도메인 이름
^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$
- 인터넷 URL
^(http|https)://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
- 사용자 이름 (Twitter username)
^[a-zA-Z0-9_\-.]{3,15}$
- 유선 전화
^0\d-\d{4}-\d{4}
- 휴대 전화
^(010|019|011)-\d{4}-\d{4}
- 인터넷 전화
^070-\d{4}-\d{4}
- 암호 (대소 문자 숫자 조합 특수 문자 금지, 길이는 8-10
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}
- 날짜 (YYYY-MM-DD)
^\d{4}-\d{1,2}-\d{1,2}$
- XML
^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
- 빈 줄
\n\s*\r
- 선두 후미 공백
^\s*|\s*$
- IP 주소
\d+\.\d+\.\d+\.\d+
- IP 주소
((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
- 숫자
^[0-9]*$
- N 자리수 숫자
^\d{n}$
- N 자리 이하 숫자
^\d{n,}$
- MN 자리 숫자
^\d{m,n}$
- 제로로부터 시작되는 숫자
^(0[0-9]*)$
- 제로 이외로 시작 숫자
^([1-9][0-9]*)$
- 소수점 이하 1-2 위 숫자
^(\-)?\d+(\.\d{1,2})?$
- 양의 정수
^[1-9]\d*$
- 음수 정수
^\-[1-9]\d*$
- 영숫자
^[A-Za-z0-9]+$
- 길이가 3-20의 모든 문자
^.{3,20}$
- 대소 문자 26 문자
^[A-Za-z]+$
- 대문자 26 문자
^[A-Z]+$
- 문자 26 문자
^[a-z]+$
Python
#!/usr/bin/env python
import re
rep = '^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$';
email = 'tagi@tistory.com';
isEmail = re.match(rep, email) != None;
print(isEmail);
JavsScript
var regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
regex.test("tagi@titory.com"); // true | false
var regex = new RegExp('^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$');
regex.test("tagi@titory.com"); // true | false