import re
wordlist = ["color", "colour", "work", "working",
"fox", "worker", "working"]
re.search(찾고자 하는 단어, 찾을 곳)
for word in wordlist:
if re.search('col.r', word): # .은 하나의 '아무 문자'를 의미함
print(word)
# color
for word in wordlist:
if re.search('col..r', word):
print(word)
# colour
for word in wordlist:
if re.search('col.*r', word): #* 은 바로 앞의 문자의 반복을 의미
print(word)
#color
#colour
wordlist2 = ['acolor', 'color', 'colour']
for word in wordlist2:
if re.search('col.r', word):
print(word)
regular_expressions = '<html><head><title>Title</title>'
print(len(regular_expressions))
# 32
print(re.match('<.*>', regular_expressions).span())
# span(): 정규표현식과 일치하는 문자열의 (시작위치, 끝 위치+1) 튜플을 반환한다.
# (0, 32)
print(re.match('<.*>', regular_expressions).group())
# group(): 정규표현식과 일치된 문자열을 반환한다.
# <html><head><title>Title</title>
compile은 문자열에 적용하고자 하는 패턴을 정의하는 것이다.
phone = re.compile(r"010-\d{4}-\d{4}")
# 010-숫자4개-숫자4개 형식으로 컴파일
# 아래와 같은 데이터가 있을 때
personal_info = ['홍길동 010-1234-1234', '고길동 010-5678-5679']
# search 메서드를 활용해 컴파일된 패턴이 적용되는 부분만 찾고
for text in personal_info:
match_object = phone.search(text)
print(match_object.group())
# group() 메서드로 해당 문자열을 반환
##휴대폰 번호만 추출된 것을 확인할 수 있다.
# 010-1234-1234
# 010-5678-5679
컴파일을 축약된 형태로도 사용할 수 있다.
# re.match(compile 패턴, 찾을 곳)
phone_match = re.match("010-\d{4}-\d{4}", "고길동 010-1234-1234")
print(phone_match)
# <re.Match object; span=(0, 13), match='010-1234-1234'>
phone_search = re.search("010-\d{4}-\d{4}", '홍길동 010-1234-1234')
print(phone_search)
# <re.Match object; span=(4, 17), match='010-1234-1234'>
하지만 컴파일 패턴 객체를 여러번 사용해야 할 때는 3.1. compile 객체화 방식인 re.compile 방식으로 사용하는 것이 편하다.
last modified 17-11-2021.