演習
re
一般的なマッチング
import re
content = 'akjnankc123ajckncs'
re_text = 'akj\d{3}\s{4}ncs'
result = re.match(re_text, content)
print(result)
print(result.group())
print(result.span())
ユニバーサルマッチング
import re
content = 'Hello this is Aaron'
re_text = '^Hello.*Aaron$'
result = re.match(re_text, content)
print(result)
print(result.group())
print(result.span())
お見合いターゲット
import re
content = 'Hello this is Aaron'
re_text = '^Hello (\d+).*Aaron$'
result = re.match(re_text, content)
print(result)
print(result.group(1))
print(result.span())
強欲マッチング
import re
content = 'Hello this is Aaron'
re_text = '^Hello.*(\d+).*Aaron$'
result = re.match(re_text, content)
print(result)
print(result.group(1))
print(result.span())
非貪欲マッチング
import re
content = 'Hello this is Aaron'
re_text = '^Hello.*?(\d+).*Aaron$'
result = re.match(re_text, content)
print(result)
print(result.group(1))
print(result.span())
マッチングモード
. 改行を一致させることはできません。
import re
content = '''Hello
this is Aaron'''
re_text = '^Hello.*?(\d+).*Aaron$'
result = re.match(re_text, content, re.S)
print(result)
print(result.group(1))
print(result.span())
エスケープ
特殊文字をエスケープするには
re.search
import re
content = 'extra strings Hello this is Aaron extra strings'
re_text = 'Hello.*?(\d+).*Aaron'
result = re.search(re_text, content)
print(result)
print(result.group(1))
print(result.span())
re.findall
文字列を検索し、マッチした部分文字列をすべてリストとして返します。
re.sub
文字列内の一致する部分文字列をそれぞれ置換し、置換後の文字列を返します。
import re
content = "asfawacw Hello this is Aaronawdawcwc"
result = re.sub('(\d+)', '\1 2123', content)
print(result)
re.compile
マッチするパターンを再利用するために、正規表現文字列を正規オブジェクトにコンパイルします。
import re
content = "Hello this is Aaron"
pattern = re.compile('Hello.*Aaron', re.S)
result = re.match(pattern, content)
print(result)
終了




