[python]Pythonreモジュール
Pythonreモジュール
正規表現を使用した文字列の検索
re.compile()-保存モード
import re
pat1 = re.compile('[a-z]+') # 한단어 이상의 영어
pat2 = re.compile("\d{3}") # 세자리로 이루어진 숫자
オプション
import re
pat1 = re.compile('[a-z]+') # 한단어 이상의 영어
pat2 = re.compile("\d{3}") # 세자리로 이루어진 숫자
コンパイルモードでオブジェクトを検索する方法
match, search
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'>
'''
findall, finditer
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 ^
-文字列の先頭に一致$
-一致文字列末尾grouping
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
'''
正規表現の使用(Eメール)
p = re.compile(r"[a-zA-Z0-9_-]+@[a-z]+.[a-zA-Z]+$")
s1 = "[email protected]"
s2 = "[email protected]"
s3 = "[email protected]"
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='[email protected]'>
None
None
'''
文字列置換
s = "korean american italian"
res = re.sub('n', '', s)
print(res)
'''
korea america italia
'''
Reference
この問題について([python]Pythonreモジュール), 我々は、より多くの情報をここで見つけました https://velog.io/@easttwave/python-파이썬-re모듈テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol