import re //정규표현식 쓰기 전 임포트 해줘야 함
p = re.compile(‘ab*’) //이렇게 패턴(조건)을 선언해놓고
m = p.match(“string”) //이런 식으로 문자열의 처음부터 정규식과 매치하는지 체크
match의 결과로는 match 객체(매치 있을 때) 혹은 none(매치되는 게 없을 때) 으로 나와서 이 결과를 활용해서 사용가능.
=> 저 두 줄 줄여서 m = re.match(‘ab*’, “string”) 로 써도 됨. 한 번 만든 패턴 여러 번 안 쓸 때
if m:
print(‘Match found: ’, m.group()) //그룹은 매치된 문자열 리턴
else:
print(‘no Match’)
m = p.search(“문자열”) //문자열 전체를 검색해서 매치되는 부분이 있으면 매치라고 뜸. m.index로 매치된 부분의 주소를 찾아서 이용할 수 있음 매치되는 부분이 여러 부분이라면 첫번째만 리턴
m = p.findall(“~~”) //정규식과 매치되는 모든 문자열을 리스트로 돌려준다. 근데 위치는 리턴 안해줘서 여러 번 매칭이 되는데 원본의 주소를 알고 싶을 때는 무용.
m = p.finditer(“WEDFD”) //정규식과 매치되는 모든 문자열을 반복 가능한 객체로 돌려준다. 매치된 객체로 for문을 돌릴 수 있다는 얘기.
결과값으로 리턴된 match 객체는 다음과 같은 메서드 사용이 가능하다.
m=p.match(“python”)
m.group() //매치된 문자열 리턴 ‘python’
m.start() //매치된 문자열의 시작 위치 리턴 0
m.end() //매치된 문자열의 끝 위치 리턴 6
m.span() //매치된 문자열의 튜플을 (시작, 끝) 형태로 리턴 (0, 6)
m=p.search(“3 python”)
m.group() //매치된 문자열 리턴 ‘python’
m.start() //매치된 문자열의 시작 위치 리턴 2
m.end() //매치된 문자열의 끝 위치 리턴 8
m.span() //매치된 문자열의 튜플을 (시작, 끝) 형태로 리턴 (2, 8)
re.IGNORECASE 또는 re.I 옵션은 대소문자 구별 없이 매치를 수행 p = re.compile('[a-z]', re.I)
re.MULTILINE 옵션은 ^, $ 메타 문자를 문자열의 각 줄마다 적용해 주는 것
^는 문자열의 처음, $는 문자열의 마지막을 의미
정규식이 ^python인 경우 문자열의 처음은 항상 python으로 시작해야 매치되고,
정규식이 python$이라면 문자열의 마지막은 항상 python으로 끝나야 매치
'언어 > 파이썬' 카테고리의 다른 글
파이썬 split, sep 쓰는 법 (0) | 2021.04.21 |
---|---|
파이썬 한 줄 출력, 엔터, 여러 줄 출력. 입력 받기 input split (0) | 2021.04.21 |
파이썬 정규표현식 : 이론 (0) | 2020.12.17 |
python(2) - 파이썬의 출력(print() 함수) (0) | 2018.04.17 |
Python(1) - 파이썬 특징, 입력, 주석, 초기화 (0) | 2018.04.17 |
댓글