카테고리 없음

자주 사용하는 정규표현식

강예진 2024. 5. 28. 13:43

정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 

 

 

정규표현식 앞 뒤에 붙은 문자는 /^ (시작), $/ (끝) 을 의미한다.

영문자 소문자, 숫자, “-”, “_” 로만 구성된 길이 2 ~ 10 자리 사이 문자열

/^[a-z0-9_-]{2,10}$/

 

신용카드 번호

19자리 숫자와 "-": /^[0-9-]{19}$/

4-4-4-4 체크: /^[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}$/

 

영문자 대소문자와 숫자로만 구성

/[a-zA-Z0-9]/

전화번호

3자리-3~4자리-4자리(사이에 1자 아무거나 가능)): /^[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3,4}[-\s\.]?[0-9]{4}$/

3자리-3~4자리-4자리(사이에 "-" 고정): /^\d{3}-\d{3,4}-\d{4}$/

휴대폰&전화번호:  /(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/

휴대폰번호: /^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$/

UUID

/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/

아스키II 코드만

/[ -~]/

맥어드레스

/^[a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}$/

IP주소(IPv4)

/(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}/

IP주소(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]))/

이메일주소

기본체크:  /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

RFC5322: /\b[\w.!#$%&’+\/=?^`{|}~-]+@[\w-]+(?:\.[\w-]+)\b/

정밀체크: /(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/

패스워드

최소 8자 이상으로 영문자 대문자, 영문자 소문자, 숫자, 특수문자가 각각 최소 1개 이상:

/^(?=.?[A-Z])(?=.?[a-z])(?=.?[0-9])(?=.?[#?!@$ %^&*-]).{8,}$/

최소 8자 이상으로 숫자, 특수문자가 각각 최소 1개이상:

/^(?=.?[0-9])(?=.?[#?!@$ %^&*-]).{8,}$/

URL

프로토콜 포함: /https?:\/\/(www\.)?[-a-zA-Z0-9@:%.\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%\+.~#()?&//=]*)/

프로토콜 옵션: /(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%.\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%\+.~#?&//=]*)/

HTML 태그

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

/<\/?[\w\s]*>|<.+[\W]>/

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

하이퍼링크

/(?!<a\sname=\"([\w\s\d\-\.\#]+)\"><\/a>)<a\sname=\"([\w\s\d\-\.\#]+)\">(.*?)<\/a>/

숫자만인지 체크

^(\(?\+?[0-9]\)?)?[0-9_\- \(\)]$

웹사이트 하이퍼링크인지 체크

<a\s+(?:[^>])href=\"((?:https:\/\/|http:\/\/)(?:.?))">(?:.*?)<\/a>

숫자와 영문자 대소문자만

공백없는 숫자와 영문자 대소문자: /^[a-zA-Z0-9]*$/

공백포함 숫자와 영문자 대소문자: /^[a-zA-Z0-9 ]*$/

영문자 대소문자: /[a-zA-Z]/

년월일

yyyy-mm-dd: /^(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/

특수문자와 공백 선택

한글포함 특수문자와 공백: /[^?a-zA-Z0-9/]/

한글제외 특수문자와 공백: /[^-가-?a-zA-Z0-9/ ]/

주민등록번호

/^[-A-Za-z0-9_]+[-A-Za-z0-9_.][@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.][.]{1}[A-Za-z]{1,5}$/

 

 


 

정규표현식 테스팅 사이트

 

토큰까지 상세하게 확인할 수 있는 정규표현식 테스팅 사이트

Regular expressions 101

 

regex101: build, test, and debug regex

Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.

regex101.com

 

단순한 정규표현식 테스팅 사이트

RegExr