컴퓨터

정규표현식 (Regular Expression)

Selnis 2015. 5. 8. 13:44

정규표현식(Regular Expression) 이란?

정해진 패턴을 사용하여 특정 패턴과 일치하는 데이터를 검색하고, 나아가 이를 프로그래밍 적으로 활용 가능하게끔 지원하는 표현식 입니다.


프로그래밍 언어에서 지원하며, RegExp 와 같은 클래스 명으로 제공하는 경우가 많습니다.



정규표현식 사용 문자

문자

내용

.

임의의 한 문자를 의미


[예시]

a.c → aac, abc, adc, aec, ...

*

바로 앞의 문자가 0개 이상인 경우


[예시]

abc* → ab, abc, abcc, abccc, ...

+

바로 앞의 문자가 1개 이상인 경우


[예시]

abc+ → abc, abcc, abccc, ...

?

바로 앞의 문자가 0개 혹은 1개인 경우


[예시]

ab?c → ac, abc 

^

부정을 의미


[예시]

^b → b가 아닌 모든 문자 

[]

대괄호 내의 여러 문자 중 하나


[예시]

[ab]c → ac, bc

[0-9] → 숫자

[a-z] → 알파벳 소문자

[A-Z] → 알파벳 대분자

[가-힣] → 완성형 한글

[一-龥] → 한자

[0-9a-zA-Z] → 알파벳 + 숫자

^[0-9] → 숫자가 아닌 문자

{}

앞의 문자(열)의 출현 횟수


[예시]

a{2}bc → aabc

()

괄호 내의 문자를 그룹화


[예시]

(ab)*c → c, abc, ababc, abababc, ...

|

논리연산자 or를 의미


[예시]

a|b → a 또는 b

\

이스케이프 문자로 특수문자를 그대로 표기하고자 할때 사용


[예시]

\. → . 을 그대로 표기 

\d → 정수

\d{2, 3} - \d{3,4} - \d{4} → 전화번호 찾는 정규식

\D → 숫자가 아닌 모든 문자

\w → [a-zA-Z0-9] 와 상동

\W → [^a-zA-Z0-9] 와 상동, 영어와 숫자를 제외한 모든 문자

\n → 줄바꿈 문자

\s → 줄바꿈, 공백, 탭과 같은 공백 문자

\S → 공백 문자를 제외한 모든 문자



정규표현식 사용 예시

1. 소수점 찾기

[0-9]{1,3}\.?[0-9]*%


2. 전화번호 찾기

\d{2,3}-\d{3,4}-\d{4}

[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}


3. URL 주소 찾기

http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?


4. 주민등록번호 찾기

[0-9]{6}-[0-9]{7}

[0-9][0-9][01][0-9][0123][0-9]-[1234][0-9]{6}


5. <a> 태그 찾기

<(a)\b[^>]*>



정규표현식 연습 사이트

http://regexr.com

상기 사이트에서 정규 표현식 연습이 가능합니다.

단, 프로그래밍 언어에서의 동작과 상이한 결과가 나올 수도 있으므로 테스트를 잘 해보셔야 합니다.



참고 사이트

1. http://www.hoons.net/Lecture/View/635

2. http://regexr.com/