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
번호 분류 제목 날짜 조회 수
2344 종교와철학 "박근혜 '애' 낳는 그림 그린 홍씨, 누군가 자신의 어머니를 저런식으로 그렸다면? file 2012.11.19 6344
2343 AutoHotKey #ifwinactive & #ifwinexist 윈도우창 마다 핫키의 용도를 다르게 사용하는 방법 2011.02.14 16522
2342 만들기 <!--f644fe64217d47f8abef1fe9b7150c48--> secret 2010.10.29 3949
2341 Excel 'C:Documents.xlsx' 을(를) 찾을 수 없습니다. 라는 오류 메시지가 나오는 경우 대처방법 2015.01.28 4767
2340 유용한상식 '작업의 정석' 과외받는 남자들 12 2013.03.04 7135
2339 WindowsTip (nPDF) 프린터 인쇄 내용을 PDF 파일로 변환하기 2015.01.24 2273
2338 재미재미 (쇼킹한 음료광고)Thailand funny slimming greentea commercial 1 2 2012.08.25 5554
2337 일상 (펌)개성공단에서 4월 13일 나온 근무자입니다 2013.04.17 20468
2336 유용한상식 (해외송금)SWIFT 국민은행 송금 및 은행별 SWIFT CODE LIST 2014.02.03 17062
2335 재미재미 * 바람피운 남편을 어떻게...* 2010.12.19 5309
Board Pagination Prev 1 2 3 4 5 ... 235 Next
/ 235

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소