blog

Pythonでよく使われるツール正規表現

演習\n\n\nreモジュール\n正規マッチング\nインポート re\ncontent = ''\nre_text = 'akjd\n結果 = re.m...

Jun 3, 2020 · 2 min. read
シェア

演習

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)

終了

Read next

HashMapソースコード

HashMapはメンバ変数を継承していますQ:赤黒木に変換する前にMapのバケット数が8以上になっているのはなぜですかコンストラクタデータの操作要素の追加容量の拡張赤黒木を埋めるための空白

Jun 3, 2020 · 8 min read