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
번호 분류 제목 날짜 조회 수
80 재미재미 최고로 비싸게 팔린 사진한장이라네요. 5 file 2016.10.31 32223
79 재미재미 상보지 1 file 2022.05.26 20539
78 재미재미 2.4Ghz 무선신호 증폭기 => 2.6Km 수신가능(무저항시) 2014.08.18 19262
77 재미재미 김흥국 어록 말 실수의 달인 총정리 2016.04.26 17388
76 재미재미 개그맨 장슬기 도대체 넌 어디서 왔니? 3 file 2012.09.28 16597
75 재미재미 농같은 박정희 보좌관 허경영(26세) 이야기 3 2009.08.26 16472
74 재미재미 슈빌이라는 황새를 만날수 있다 file 2016.04.02 14551
73 재미재미 미래형 속도 감시카메라 file 2013.04.27 13669
72 재미재미 선덕여왕의 덕만과 허경영의 뛰어난 지략 1 2009.08.26 12075
71 재미재미 보스와 리더의 차이 file 2013.04.29 12004
70 재미재미 동영상 하나 때문에 직장을 바꾸고 싶어졌어요. file 2009.07.22 11654
69 재미재미 명량대첩의 비밀 file 2013.04.29 11115
68 재미재미 훈훈한 아동주민 file 2013.04.27 10724
67 재미재미 일본인 점술 사이트 2010.07.27 9828
66 재미재미 나는 갑일까? 을일까? 도대체 어느집단일까? 2013.06.07 9628
65 재미재미 상대방 동의없는 대화내용 녹취 1 2 2012.07.19 9598
64 재미재미 신수지의 놀라운 시구 2013.07.06 9545
63 재미재미 수 0, 1, 3, 4, 6, 7, 8을 한 번씩만 사용하여 만든 일곱 자리 수입니다. 6750000보다 크고 6800000보다 작은 수 입니다. 일의 자리 숫자와 백의 자리 숫자의 합은 십의 자리 숫자와 같습니다. 조건4) 백의 자리 숫자는 일의 자리 숫자보다 작습니다. 위의 조건을 모두 만족하는 수를 구하시오. 2023.03.19 8854
62 재미재미 제네시스 현기차 영국서 당당히 1위 file 2016.09.04 8271
61 재미재미 루트계산과 파이에 대하여 2014.03.11 8001
Board Pagination Prev 1 2 3 4 Next
/ 4

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소