Pythonでプログラムを書いていると、文字列などのパターンをマッチングさせたい事が良く出てきます。そんな時に便利なのが正規表現を使ったパターンマッチングです。
今回はPythonでの正規表現の使い方を解説します。
文字列などのパターンをマッチング
先頭文字列に対するパターンマッチング
先頭文字列に対してパターンをマッチングする場合はmatch()関数を使います。
下の例はdata変数に入っている’abcdefg’の文字列の先頭が’abc’かどうかマッチングさせる時の例です。下の例ではマッチするのでm.group()関数の戻り値でマッチした文字列が呼び出されprint文で’abc’と画面に結果が表示されます。
import re
data = ‘abcdefg’
m = re.match(‘abc’, data)
if m:
print(‘match!!’)
print(m.group())
else:
print(‘Not match!!’)
この例でマッチさせたい文字列を’bcd’に変えるとマッチしなくなりNot Match!!と表示されます。
import re
data = ‘abcdefg’
m = re.match(‘bcd’, data)
if m:
print(‘match!!’)
print(m.group())
else:
print(‘Not match!!’)
どこの場所でもあってもとにかくパターンをマッチングする
最初の文字列では無く、文字列内の何処にあってもよいので任意のパターンの文字列とマッチするか確認したい場合、search()関数を使います。
import re
data = ‘abcdefg’
m = re.search(‘bcd’, data)
if m:
print(‘match!!’)
print(m.group())
else:
print(‘Not match!!’)
先頭または末尾をマッチングする
import re
data = ‘abcdefg’
m = re.search(‘^abc’, data)
if m:
print(‘match!!’)
print(m.group())
else:
print(‘Not match!!’)
import re
data = ‘abcdefg’
m = re.search(‘efg$’, data)
if m:
print(‘match!!’)
print(m.group())
else:
print(‘Not match!!’)
コメント
コメント一覧 (1件)
1. ”文字列などのパターンをマッチング”
せっかちな私には難解でした、
次のような感じだと全体が一目でつかめるし繰り返しが省けて Python の精神に合致すると思います。
#文字列 のマッチング
mport re
data = ‘abcdefg’
m = re.match(‘abc’, data) #先頭
m = re.search(‘bcd’, data) #どこかで一致
m = re.search(‘^abc’, data) #先頭
m = re.search(‘efg$’, data) #末尾
if m:
print(‘match!!’)
print(m.group())
else:
print(‘Not match!!’)
2. フォルダの中のファイル名を取得する
“フォルダ” と言うより ”ディレクトリ” とか ”パス” と呼ぶべきかと…