public bigdata

파이썬을 이용한 웹 스크래핑(edwith 강의) chapter 1 정규식-2 본문

Python programming/웹 크롤링

파이썬을 이용한 웹 스크래핑(edwith 강의) chapter 1 정규식-2

public bigdata 2019. 11. 17. 18:55
#########2강########


#1-1 숫자패턴 추출하기
import re
x = 'My favorite numbers are 19 and 42'
y = re.findall('[0-9]+', x) # x 문자열에서 정수 형태의 데이터 모두 추출하여 y에 리스트로 저장해줌
print(y)

#1-2 영대문자 일부 매칭
import re
x = 'My favorite numbers are 19 and 42'
y = re.findall('[AEIOUMy]+', x)
print(y)

#2-1 탐욕적 방식의 패턴 찾기
# 만약 다음 문장에서 '^F.+:'라는 패턴과 일치하는 부분을 찾는다면,
# x = 'From: Using the : character'
# From:
# From: Using the :
# 이라는 두 가지 부분이 모두 패턴과 일치하게 됩니다.
# 이럴 때는 다음과 같이 가장 긴 패턴을 찾아주는데, 이것을 '탐욕적 방식의 패턴 찾기'라고 부릅니다. 일치하는 여러 패턴이 있을 경우 가장 긴 것을 선택한다는 의미입니다.
import re
x = 'From: Using the :character'
y = re.findall('^F.+:', x)
print(y)

#2-2 비탐욕적 방식의 패턴 찾기
# ?를 붙여주면 여러 대상 중 가장 짧은 것을 선택
import re
x = 'From: Using the : character'
y = re.findall('^F.+?:', x)
print(y)

# 3-1 원하는 부분만 추출하기
# 다음의 코드를 실행하면 '@'문자 앞 뒤로 공백이 아닌 문자가 오는 패털을 찾는다.
import re
x = 'From stephen.marquard@uct.ac.za Sat Jan  5 09:14:16 2008'
y = re.findall('\S+@\S+',x)
print(y)

# 3-2 이메일 주소 부분만 추출하기 by 소괄호
# From으로 시작하는 이메일 주소 패턴에서 
# 이메일 주소 부분만 추출
import re
x = 'From stephen.marquard@uct.ac.za Sat Jan  5 09:14:16 2008'
y = re.findall('^From(\S+@\S+)',x) # '^From '으로 매칭하고 그 중에서 ()에 해당하는 문자들만 반환하는 것으로 보인다.
print(y)

사용된 TXT파일 첨부

mbox-short.txt
0.09MB