코딩배우기

자주 사용하는 정규 표현식을 정리해 봤습니다.

탁이 2020. 2. 24. 17:56

제목대로 자주 사용하는 정규 표현식을 매번 검색해서 사용하는 것은 효율적으로 나쁘기 때문에 정리해 보았습니다. 각 언어에서 정규 표현식의 샘플도 참고해 주세요. 

정규 표현식

 

  • 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