我基本上需要一个程序/脚本来搜索正则表达式匹配的文件,然后将每个匹配保存到新创建的文本文件(即 match_01.txt、match_02.txt、match_03.txt 等)。注意:它必须支持多行匹配!
编辑 :
这是我尝试使用 Josha 的帮助(谢谢 :):
尝试此操作时出现错误
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)(样本)(.*?)
那么它也给了我与上面相同的错误。它就像它不喜欢(。*?)奇怪..?