티스토리 뷰
반응형
패턴 추출하기
import re
x = 'My 2 Favorite numbers are 19 and 42'
# x 문자열에서 0부터 9까지의 문자 중 하나,
# 즉 정수가 하나 이상 반복되는 단어를 리스트로 반환
y = re.findall('[0-9]+', x)
print(y)
# 'A', 'E', 'I', 'O', 'U' 로 이루어진 패턴을 찾아 출력
# x 문자열에는 해당되는 패턴이 없으므로 빈 리스트를 반환
# 정규표현식에서는 대, 소문자 구분함
y = re.findall('[AEIOU]+', x)
print(y)
탐욕적 방식의 패턴 찾기
만약 아래의 문장에서 '^F.+:' 패턴을 찾게 되면,
x = 'From: Using the : character'
- From:
- From: Using the :
두 문장이 일치하게 된다. 이럴때는 가장 긴 문장을 선택하게 되는데 이를 '탐욕적 방식의 패턴 찾기' 라고 한다. 일치하는 여러 패턴 중 가장 긴 것을 선택한다는 의미이다.
import re
x = 'From : Using the : character'
y = re.findall('^F.+:', x)
print(y)
비탐욕적 방식의 패턴 찾기
패턴뒤에 '?' (물음표) 를 붙이면 일치하는 패턴 중 짧은 것을 선택한다.
import re
x = 'From : Using the : character'
y = re.findall('^F.+?:', x)
print(y)
원하는 부분만 추출하기
다음 코드를 실행하면 '@' 문자 앞뒤로 공백이 아닌 문자가 오는 문자열 패턴을 찾는다. 즉, 이메일주소 패턴이 리스트로 반환된다.
import re
x = 'From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008'
y = re.findall('\S+@\S+', x)
print(y)
소괄호를 사용하면 From 으로 시작하는 이메일주소 패턴에서 이메일만 추출할 수도 있다.
import re
x = 'From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008'
y = re.findall('^From (\S+@\S+)', x)
print(y)
END
반응형
'IT > Python' 카테고리의 다른 글
[Python] 소켓 (0) | 2020.11.14 |
---|---|
[Python] 정규식을 활용하는 다양한 방법 (0) | 2020.11.14 |
[Python] 정규식 (Regular Expression) (0) | 2020.11.03 |
[Python] 튜플을 이용한 딕셔너리 정렬 (0) | 2020.10.13 |
[Python] 딕셔너리를 활용한 데이터 빈도수 측정 (0) | 2020.10.06 |
댓글
공지사항