import re
pat1 = re.compile('[a-z]+') # 한단어 이상의 영어
pat2 = re.compile("\d{3}") # 세자리로 이루어진 숫자
옵션
match, search는 정규식과 매치될 때는 match 객체를 돌려주고, 매치되지 않을 떄는 None을 돌려준다.
import re
p = re.compile('[a-z]+')
m = p.match("python hello world 12word deram!!!")
print(m)
m = p.match("123 4214123 1421341234!!!!")
print(m)
pat = re.compile("\d{3}")
res = pat.search("drea dee 12 123")
print(res)
'''
출력값
<re.Match object; span=(0, 6), match='python'>
None
<re.Match object; span=(12, 15), match='123'>
'''
import re
p = re.compile('[a-z]+')
m = p.findall("python hello world 12word deram!!!")
print(m)
m = p.findall("123 4214123 1421341234!!!!")
print(m)
pat = re.compile("\d{3}")
res = pat.findall("drea dee 12 123")
print(res)
'''
출력값
['python', 'hello', 'world', 'word', 'deram']
[]
['123']
'''
import re
p = re.compile('[a-z]+')
f = p.finditer("python hello world 12word deram!!!")
# print(dir(re.Match)) # Match 클래스의 메소드들
for find in f:
print(find, end=' ')
print(find.span()) # 범위값을 알 수 있다
'''
출력값
<re.Match object; span=(0, 6), match='python'> (0, 6)
<re.Match object; span=(7, 12), match='hello'> (7, 12)
<re.Match object; span=(13, 18), match='world'> (13, 18)
<re.Match object; span=(21, 25), match='word'> (21, 25)
<re.Match object; span=(26, 31), match='deram'> (26, 31)
'''
|
- or^
- 문자열의 맨 처음과 일치$
- 문자열의 맨 끝과 일치p = re.compile(r'(\w+)\s+(\d+[-]+\d+[-]\d+)')
res = p.search("leehyundong 010-1234-4321")
print(res.group(1))
print(res.group(2))
'''
출력값
leehyundong
010-1234-4321
'''
p = re.compile(r"[a-zA-Z0-9_-]+@[a-z]+.[a-zA-Z]+$")
s1 = "easttwave@gmail.com"
s2 = "e123123!!!@gmail.com"
s3 = "e123123@gmail.com123"
res = p.match(s1)
print(res)
res = p.match(s2)
print(res)
res = p.match(s3)
print(res)
'''
<re.Match object; span=(0, 19), match='easttwave@gmail.com'>
None
None
'''
s = "korean american italian"
res = re.sub('n', '', s)
print(res)
'''
korea america italia
'''