공부하는 스누피

정규표현식 정리 본문

정리 모음

정규표현식 정리

커피맛스누피 2020. 10. 17. 00:51

정규표현식(Regular Expression)

정규표현식은 특정한 패턴을 가진 문자열의 집합을 표현하는 방법이다.

문자열의 검색 및 치환에서 많이 쓰인다. 대표적인 정규표현식 라이브러리로 Python의 re 모듈이 있다.

 

문법

정규표현식의 패턴은 대상 문자열과 일치시키는데 쓰이며, 일련의 문자들로 구성된다.

 

양의 지정

? : 있어도 되고 없어도 되는 문자를 일치.

ex) colou?r -> u는 있어도 되고 없어도 된다.

* : 0번 이상 나타나는 문자를 일치시킴.

ex) ab*c -> b가 없어도 되고, 여러번 연속해서 나타나도 된다.

+ : 1번 이상 나타나는 경우

ex) ab*c -> b가 없으면 안된다.

 

메타문자 (특수 문자 기호)

정규표현식 내 특별한 의미를 갖는 문자 기호이다.

ex) |, [], (), 수량자, 앵커(`^$\) 등

 

구분 문자

표현식을 일반 문자열로 표현할 수 있으나, 구분 문자로 슬래시(/)를 사용할 수 있다.

 

POSIX 기본 및 확장 표준 문법

정규표현식은 POSIX 확장 문법을 사용한다. 프로그래밍 언어, 라이브러리에 따라 특정 문법 규칙이 달라지기도 한다.

. 문자 1개의 문자와 일치
\w '_', a-z, 0-9 "_"를 포함한 영어 알파벳, 숫자를 일치시킨다.
\W '_', a-z, 0-9 제외  
\s 공백 문자  
\S 공백 제외  
\d 숫자  
\D 숫자 제외  
[ ] 문자 클래스 '['와 ']'사이의 문자 중 하나를 선택한다. [1-9]일 경우 1에서 9까지 숫자 중 하나와 일치되는 것을 의미한다.
[^ ]  부정 문자 클래스 안의 문자를 제외한 나머지를 선택한다.
^ 처음 문자열의 처음
$ 문자열의 끝
\A 문자열 시작점과 일치 개행문자를 인식하여 패턴을 일치시킨다.
\z 문자열의 끝과 일치  
( ) 하위식 여러 식을 하나로 묶을 수 있다.
\n 일치하는 n번째 패턴 일치하는 패턴 중 n번째를 선택한다.
* 0회 이상  
{m, n} m회 이상 n회 이하 m회 이상 n회 이하 반복하는 문자

 

정규 표현식을 테스트해 볼 수 있는 사이트

regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

 

자주 쓰는 정규 표현식

- 두번 반복되는 알파벳

p = r'(.)\1{1}'

- 단어의 첫 알파벳만 대문자로

pattern = r'( [a-z])'
toUppder = lambda pat: ' ' + pat.group(0)[1].upper()
answer = re.sub(pattern, toUppder, s)

- 전화번호

p = r'0\d{1,2}-?\d{3,4}-?\d{4}'

- 이메일

p = '\w+@\w+(.\w+)+'

 

참고

www.ktword.co.kr/abbr_view.php?m_temp1=5851

 

정규표현 메타 문자 [정보통신기술용어해설]

 

www.ktword.co.kr

 

Comments