파이썬 정규식 알아두면 요긴합니다!
표현식 | 축약표현 | 설명 |
[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번 이상 반복될 수 있음을 뜻합니다. 따라서 해당되지 않는 문자열이 나왔을 때 나뉘게 됩니다. +를 붙이지 않을 경우에는 가장 아래의 예제처럼 리턴됩니다.
반응형
'파이썬 > 파이썬 기초' 카테고리의 다른 글
python json - load 와 loads (0) | 2020.07.08 |
---|---|
(python )파이썬 기초, from과 import (0) | 2020.07.03 |
파이썬 엑셀 다루기 기초 - 읽기 (openpyxl) (0) | 2020.06.03 |
파이썬 엑셀 다루기 기초 - 쓰기 (openpyxl) (0) | 2020.06.03 |
python 파이썬 문자열 기본함수 (count, index, find, join, strip) (0) | 2020.06.02 |