import re
정규 표현식을 사용하기 위해 모듈 추가
📌 메타 문자 종류
[] | 문자 클래스 [] 안의 문자들과 매치 [] 안에 -를 쓰면 범위 |
[SDT] [a-z] |
() | 그루핑. 그룹을 만든다. | (\d+) |
? | 문자가 있거나 없거나 | ([*#]?) |
^ | 1. 문자열의 시작 2. not([] 안에서 쓰일 때) |
'^apple' [^a] |
$ | 문자열의 마지막 | 'apple$' |
{m, n} | m부터 n까지 반복 횟수 지정 생략된 m=0, n=무한대 |
ap{,1}le |
. | 줄바꿈 문자 \n을 제외한 모든 문자와 매치 a[.]b는 a.b다. |
a.b |
* | 0~n번 반복되는 문자열 매치 | ap*ple |
+ | 1~n번 반복되는 문자열 매치 | ap+ple |
| | or | apple|banana |
(?=) 전방탐색 ex) .+(?=년) 년 앞에 문자들과 매치
👇 자주 사용하게 될 문자 클래스
\d | [0-9] | 숫자와 매치 |
\D | [^0-9] | 숫자가 아닌 것과 매치 |
\s | [ \t\n\r\f\v] | 공백 문자와 매치 |
\S | [^ \t\n\r\f\v] | 공백 문자가 아닌 것과 매치 |
\w | [a-zA-Z0-9_] | 문자+숫자와 매치 |
\W | [^a-zA-Z0-9_] | 문자+숫자가 아닌 문자와 매치 |
re.sub("패턴", "바꿀 문자열", "문자열", 바꿀횟수)
sub()로 정규식과 매치되는 부분을 다른 문자로 바꾼다.
re.split(패턴, 문자열, maxsplit=0, flags=0)
문자열을 패턴에 따라서 나눈다.
maxsplit은 문자열을 자르는 횟수다.
# re.compile()이란?
re.compile(pattern, flags=0)
정규표현식 객체 안에 있는 정규표현식 패턴을 컴파일
match(pattern, string, flags=0)
search(pattern, string, flags=0)
등과 같이 사용해서 string에서 매치되는 문자열을 찾는다.
match()는 문자열의 처음부터 정규식과 매치되는지 조사
search()는 문자열 전체를 검색
match 객체의 메서드 | 목적 |
group() | 매치된 문자열을 반환 |
groups() | 매치된 그룹들을 튜플에 담아 반환 없으면 None이 담김 |
start() | 매치된 문자열의 시작 위치 반환 |
end() | 매치된 문자열의 끝 위치를 반환 |
span() | 매치된 문자열의 (시작, 끝)에 해당하는 튜플을 반환 |
compile변수명.findall(문자열)
findall(패턴, 문자열)
정규식과 매치되는 문자열을 리스트로 반환
# 구체적인 사용예시
# 참고 : 파이썬 documentation
prog=re.compile(pattern)
result=prog.match(string)
result=re.match(pattern, string)
result1=prog.findall(string)
표현식이 여러 번 사용될 때 re.compile()을 사용하는 것이 더 효율적이다.
👉참고 : 점프 투 파이썬
https://blog.hexabrain.net/205
반응형
'Languages > Python' 카테고리의 다른 글
딕셔너리 (0) | 2021.05.04 |
---|---|
문자열 format (0) | 2021.04.30 |
set() 자료형 (0) | 2021.03.19 |
[Error] int object is not callable (0) | 2021.02.24 |
함수 (0) | 2021.01.18 |