파이썬/파이썬 기초

파이썬(python) 정규식 사용 예제

개발자J군 2020. 6. 2. 20:25

파이썬 정규식 알아두면 요긴합니다!

표현식 축약표현 설명
[0-9] \d 숫자를 찾아라
[^0-9] \D 숫자가 아닌것을 찾아라(특수문자,대소문자,스페이스,엔터 등등)
[ \t\n\r\f\v] \s 스페이스, 탭, 엔터 등을 찾아라
[^\t\n\r\f\v] \S 화이트스페이스(스페이스, 탭, 엔터 등)이 아닌 것을 찾아라. 즉 대소문자, 특수문자를 찾아라.
[A-Za-z0-9] \w 문자,숫자를 찾아라
[^A-Za-z0-9] \W 문자, 숫자가 아닌 것을 찾아라

 

사용예제 1

import re
str = "My Home!"
re.sub("[^a-zA-Z]","?",str)
>> My?Home?​

#대소문자가 아닌 것을 찾아서 ? 로 치환하였습니다.

#"My Home!" 에는 대소문자 외에 공백(스페이스)과!(느낌표)가 있습니다. 이 부분이?(물음표)로 치환되었습니다.

 

사용예제 2

import re
str = "My Home!"
re.sub("[abcdeABCDE]","?",str)
>> My Hom?!

#문자를 직접 하나하나 지정하는 것도 가능합니다.

소문자 abcde 또는 ABCDE를 찾아서 ? 로 치환하였습니다. 

 

사용예제 3

#.search()는 매칭이 되는지를 찾을때 활용

str = "My Home!"
pattern = re.compile('[abcdeABCDEFG]')
pattern.search(str)
>>> <re.Match object; span=(6, 7), match='e'>


str = "My Home!"
pattern = re.compile('[12345]')
pattern.search(str)
>>> None

search( )는 매칭여부를 찾을 때 사용됩니다. 매칭 되지 않을 때는 None을 반환합니다.

 

 

사용예제4

import re
str ="하하 haha"
pattern = re.compile("[^가-힣]")
re.sub(pattern, "*", str)
>> 하하*****

str ="하하 haha"
pattern = re.compile("[가-힣]")
re.sub(pattern, "*", str)
>> ** haha

파이썬 정규식에서 한글의 범위는 가-힣으로 지정합니다.

 

 

사용예제5

pattern = re.compile('[A-Za-z]+')
pattern.findall('Python is Good')
>> ['Python', 'is', 'Good']


pattern = re.compile('[a-z]+')
pattern.findall('Python is Good')
>> ['ython', 'is', 'ood']


pattern = re.compile('[a-z]')
pattern.findall('Python is Good')
>> ['y', 't', 'h', 'o', 'n', 'i', 's', 'o', 'o', 'd']

정규식에서 findall은 해당되는 문자열을 리스트로 반환합니다.

여기서 + 는 해당되는 문자열이 1번 이상 반복될 수 있음을 뜻합니다. 따라서 해당되지 않는 문자열이 나왔을 때 나뉘게 됩니다. +를 붙이지 않을 경우에는 가장 아래의 예제처럼 리턴됩니다.

반응형