본문 바로가기

Language/python

[python] 정규 표현식 re

 

알고리즘 문제 풀때 자주 사용하는 것들만 정리

 

문자 클래스 (character class) [ ]


 

문자 클래스로 만들어진 정규식은 "[ ] 사이의 문자들과 매치"라는 의미를 갖는다.

즉 정규 표현식이 [abc]라면 이 표현식의 의미는 "a, b, c 중 한 개의 문자와 매치"를 뜻한다.

 

[ ] 안의 두 문자 사이에 하이픈(-)을 사용하면 두 문자 사이의 범위(From - To)를 의미한다.

✔ [a-zA-Z] : 알파벳 모두

✔ [0-9] : 숫자

문자 클래스 안에 ^ 메타 문자를 사용할 경우에는 반대(not)라는 의미를 갖는다. 예를 들어 [^0-9]라는 정규 표현식은 숫자가 아닌 문자만 매치된다.

 

 

자주 사용하는 문자 클래스


 

 

정규식을 이용한 문자열 검색


✔match() : 문자열의 처음부터 정규식과 매치되는지 조사한다.

✔ search() : 문자열 전체를 검색하여 정규식과 매치되는지 조사한다.

✔ findall() : 정규식과 매치되는 모든 문자열(substring)을 리스트로 돌려준다.

✔finditer() : 정규식과 매치되는 모든 문자열(substring)을 반복 가능한 객체로 돌려준다.

 

import re

str = "abcd1+efg"
str = re.findall("[a-zA-Z]+", str)
print(str)

알파벳인 부분만 매치

출력 : ['abcd', 'efg']

 

import re

str = "abcd1+efg"
str = re.split("[0-9]+", str)
print(str)

숫자를 기준으로 나누기

출력 : ['abcd', '+efg']

 

 

 

'Language > python' 카테고리의 다른 글

python 꿀팁🍯  (0) 2020.05.07
[python] bisect / 이진 탐색 내장함수  (0) 2020.03.26
[python] 리스트 정리  (0) 2020.01.29
[python] 기초 문법 정리  (0) 2020.01.25