スポンサーリンク
正規表現でファイルを検索(findall())して、マッチした複数文字列を取得
まずはファイルオープン
まずはファイルオープンして、ファイルの中身を変数に代入します。
wiht〜openでファイルオープンするとクローズ忘れがなくなるので便利です。
そして、read()でファイルの中身を変数に格納します。
例えば、in.txtをファイルオープンして、変数strにファイルの中身を格納する場合は、
下記のように書きます。
with open('in.txt','r') as f: str = f.read()
スポンサーリンク
re.findall()で検索して文字列を取得
あとは、re.findall()で検索して文字列を取得します。
正規表現を扱うためreモジュールをimportします。
import re
あとは、re.findall()で文字列を検索します。
例えば、小文字の英字を検索する場合は下記のように書きます。
matchWord = re.findall(r'[a-z]', str)
マッチした単語をprint出力しています。
for i in matchWord: print(i)
サンプルコード
例えば、下記のin.txtがあったとします。
$ cat in.txt a98b0s 38d9l9 eei6
下記がサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import re with open('in.txt','r') as f: str = f.read() matchWord = re.findall(r'[a-z]', str) for i in matchWord: print(i)
下記が実行結果になります。
$ ./sample.py a b s d l e e i
grepを使って同様のことを実現
grepでも同様のことができます。ワンライナーでもできるので、この用途だけに限れば使い勝手が良いかもしれません。
参考:grepの-oオプションで検索にマッチした部分のみ出力
スポンサーリンク