Skip to content
HTMLPHPMSQL
2018.01.23 20:36

자주 쓰이는 정규식(Regular Expression)

조회 수 10790 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

자주 쓰이는 정규식(Regular Expression) 

 

전자우편 주소:
/^[a-z0-9_+.-]+@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/

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

HTML 태그 - HTML tags:
/\<(/?[^\>]+)\>/

전화 번호 - 예, 123-123-2344 혹은 123-1234-1234:
/(\d{3}).*(\d{3}).*(\d{4})/

날짜 - 예, 3/28/2007 혹은 3/28/07:
/^\d{1,2}\/\d{1,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})?/

적어도 소문자 하나, 대문자 하나, 숫자 하나가 포함되어 있는 문자열(8글자 이상 15글자 이하) - 올바른 암호 형식을 확인할 때 사용될 수 있음:
/(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}/

 

 


 

 

숫자만 가능 : [ 0 ~ 9 ] 주의 : 띄어쓰기 불가능
/^[0-9]+$/

 

 이메일 형식만 가능

/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/

 

한글만 가능 : [ 가나다라 ... ] 주의 : ㄱㄴㄷ... 형식으로는 입력 불가능 , 띄어쓰기 불가능
/^[가-힣]+$/

 

한글,띄어쓰기만 가능 : [ 가나다라 ... ] 주의 : ㄱㄴㄷ... 형식으로는 입력 불가능 , 띄어쓰기 가능
/^[가-힣\s]+$/

 

영문만 가능 :
/^[a-zA-Z]+$/

 

 영문,띄어쓰기만 가능
/^[a-zA-Z\s]+$/

 

전화번호 형태 : 전화번호 형태 000-0000-0000 만 받는다. ]
/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/

 

도메인 형태, http:// https:// 포함안해도 되고 해도 되고
/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/

 

도메인 형태, http:// https:// 꼭 포함
/^((http(s?))\:\/\/)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/

 

도메인 형태, http:// https:// 포함하면 안됨
/^[^((http(s?))\:\/\/)]([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/

 

한글과 영문만 가능
/^[가-힣a-zA-Z]+$/;

 

숫자,알파벳만 가능
/^[a-zA-Z0-9]+$/;

 

주민번호, -까지 포함된 문자열로 검색
/^(?:[0-9]{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[1,2][0-9]|3[0,1]))-[1-4][0-9]{6}$/


Jquery 에서는 $.test() 메서드로,

 PHP 에서는 preg_match() 함수로 사용

 

 

정규표현식의 기본 문법

정규표현식은 소프트웨어에 따라서 방식이나 지원 범위가 다를 수 있습니다.
 

^The The로 시작하는 문자열
of despair$ of despair로 끝나는 문자열
^abc$ abc로 시작하고 abc로 끝나는 문자열 (abc 라는 문자열도 해당됨)
notice notice가 들어 있는 문자열

 

ab* a 다음에 b가 0개 이상 (a, ab, abbb 등등)
ab+ a 다음에 b가 1개 이상 (ab, abbb 등등)
ab? a 다음에 b가 있거나 없거나 (ab 또는 a)

 

ab{2} a 다음에 b가 2개 있는 문자열 (abb)
ab{2,} a 다음에 b가 2개 이상 (abb, abbbb 등등)
ab{3,5} a 다음에 b가 3개에서 5개 사이 (abbb, abbbb, 또는 abbbbb)

*+?는 각각 {0,}{1,}{0,1}과 같습니다.
 

( )는 문자열을 묶음 처리할 때 사용
a(bc)* a 다음에 bc가 0개 이상 (묶음 처리)
a(bc){1,5} a 다음에 bc가 1개에서 5개 사이

 

hi|hello hi hello가 들어 있는 문자열
(b|cd)ef bef 또는 cdef
(a|b)*c a와 b가 섞여서 여러번 나타나고 그뒤에 c가 붙어있는 패턴

 

. (점) 임의의 한 문자
^.{3}$ 3문자로만 되어 있는 문자열

 

[ ] 괄호 안에 있는 내용 중 임의의 한 문자
[^ ] 첫문자로 ^를 쓰면 괄호 내용의 부정. 즉 괄호 안에 포함되지 않는 한 문자
[ab] 또는 b (a|b 와 동일한 표현)
[a-d] 소문자 a에서 d까지 (a|b|c|d 또는 [abcd] 와 동일)
^[a-zA-Z] 영문자로 시작하는 문자열
[0-9]% % 문자 앞에 하나의 숫자가 붙어 있는 패턴
%[^a-zA-Z]% 두 % 문자 사이에 영문자가 없는 패턴

 

특수 문자 자체를 검색하기 및 사용하기
\^ ^ \. .
\[ [ \$ $
\( ( \) )
\| | \* *
\+ + \? ?
\{ { \\ \
\n 줄넘김 문자 \r 리턴 문자
\w 알파벳과 _ (언더바) \W 알파벳과 _ 가 아닌 것
\s 빈 공간(space) \S 빈 공간이 아닌 것
\d 숫자 \D 숫자가 아닌 것
\b 단어와 단어 사이의 경계 \B 단어 사이의 경계가 아닌 것
\t Tab 문자 \xnn 16진수 nn에 해당하는 문자

[ ] 안에서는 특수 문자가 모두 효력을 잃게 됩니다.
 

검색 + 치환을 위한 하부식(부분식)
( )로 둘러싼 부분은 각각 하나의 덩어리로 취급해서,
검색시 ( ) 안에 해당되는 내용들을 변경할 내용에서 그대로 가져다 이용할 수 있습니다.
검색된 각각의 ( )안에 해당되는 내용은 변경할 내용에서 $1, $2, .. 등으로 지정해서 쓸 수 있습니다.
예제) mp3파일 이름 바꾸기
검색 : (.*) - (.*)\.mp3 .*은 길이에 상관없이 임의의 문자열, \.은 점
치환 : $2 - $1.mp3 앞에서 검색한 ( )안에 해당되는 내용끼리 순서 바꾸기
ex) "제목 - 연주자.mp3" Þ "연주자 - 제목.mp3"
앞에서 정의한 하부식을 다시 활용하기 (제가 잘못 이해한 것일 수도 있는데)
\n은 ( ) 하부식 중에서 n번째 하부식을 가리킵니다.
예제) (.+)\1+
\1로 되어 있으니까 첫번째 부분식 (.+)를 가리킵니다. 위 내용을 해석하자면, 일단 (.+)가 있으니까 이에 해당되는 내용을 찾고, \1+이 있으니까 첫번째 부분식 (.+)와 똑같은 내용이 그 뒤에 1번 이상 있는 문자열을 찾습니다.
예제) abab같은 문자열이 위에 해당되는데, 일단 (.+) 즉 임의의 문자열 ab를 찾고 그 뒤에 \1+로 첫번째 부분식을 다시 1번 이상 있는 것을 찾으니까 뒤의 ab가 이에 해당합니다.

 

변경자 ? 검색 방식 변경
(?i) 대소문자 무시 (기본값)
(?-i) 대소문자 구분
(?g) "greedy" 모드로 전환 (기본값)
(?-g) "greedy" 모드 해제, 따라서 "+"는 "+?"과 동일한 것으로 인식

 

 

 



출처: http://gocoding.tistory.com/93 [Developer Factory]

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
15 블로거질 웹페이지 속도측정 사이트 file 2016.03.08 4876
14 블로거질 웨스턴 유니온 지급 보류 해제 방법 3 1 2010.11.10 28289
13 블로거질 애드센스 국민은행 외화보통예금통장으로 입금하기 2015.12.01 5033
12 블로거질 애드센스 국민은행 외화보통예금통장으로 입금하기 file 2015.08.25 6417
11 블로거질 설치형블로그 사용중 믹시에 등록이 되지 않을경우 해결방법 file 2009.06.29 55616
10 블로거질 블로그 광고수익의 종류(애드센스, 애드클릭스, 애드포스트 등) 1 2009.06.30 46280
9 블로거질 다음블로그 RSS 검색등록 방법 file 2016.08.24 5454
8 블로거질 구글/네이버/다음 뉴스 검색 제휴 등록절차 2016.04.21 4867
7 블로거질 검색노출에 필요한 사이트 2016.02.14 3932
6 블로거질 [네이버 웹마스터 도구]에서  최적화 검증에 홈페이지 다운로드 속도 확인하기 file 2016.12.11 4127
5 블로거질 XE에서 RSS 피드 오류발생시 해결방법 2016.03.08 4072
4 블로거질 PageSpeed Insights 사용해보기 file 2016.03.23 4007
3 블로거질 HTTP 헤더 확인 - HTTP Viewer 2016.08.19 4310
2 블로거질 html 주소 특수문자 쉽게 변환 해 볼수 있는 사이트 file 2016.02.14 4867
1 블로거질 CPC 클릭광고로 제대로 수익내기 1 2013.02.28 19628
Board Pagination Prev 1 Next
/ 1

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소