基本的に、正規表現の一致をファイルで検索し、各一致を新しく作成されたテキスト ファイル (つまり、match_01.txt、match_02.txt、match_03.txt など) に保存するプログラム/スクリプトが必要です。注意: 複数行のマッチングをサポートする必要があります!
編集 :
これは、Joshaのヘルプを使用して試したものです(thx:):
これを試すとエラーが発生します
Python スクリプト:
import re
pattern = re.compile(r'(?s)(?<=Sample)(.*?)(?=EndSample)', flags=re.S)
with open('test.txt', 'r') as f:
matches = pattern.findall(f.read())
for i, match in enumerate(matches):
with open('Split/match{0:04d}.txt'.format(i), 'w') as nf:
nf.write(match)
コマンド・プロンプト:
C:\Test\python test.py
Traceback (most recent call last):
File "test.py", line 31, in <module>
nf.write(match)
TypeError: expected a character buffer object
test.txt は次のようになります。
サンプル A1 ... ... ... ... ... EndSample
サンプル B4 ... ... ... ... ... EndSample
サンプル X6 ... ... ... ... ... EndSample
そのため、"Sample" と "EndSample" (間に何百行もある) の間のすべてを一致させ、それぞれの一致を独自の txt ファイルに書き込む必要があります。これまでのところ、正規表現パターンが ie の場合にのみ機能します。"サンプル"。15 個の一致があり、Split フォルダーに 15 個の txt ファイルが作成されますが、それらにはすべて Sample という単語だけが含まれ、それ以上は含まれていません。マルチラインはまだ機能していません..そして、私の正規表現がこれである場合:
(?s)(サンプル)(.*?)
次に、上記と同じエラーも表示されます。それは好きではないようなものです (.*?) 奇妙な..?