我正在使用 findall 来分隔文本。
我从这个表达式开始 re.findall(r'(. ?)(\$. ?\$)' 但在找到最后一段文本后它没有给我数据。我错过了 '6\n\n '
如何获得最后一段文字?
这是我的python代码:
#!/usr/bin/env python
import re
allData = '''
1
2
3 here Some text in here
$file1.txt$
4 Some text in here and more $file2.txt$
5 Some text $file3.txt$ here
$file3.txt$
6
'''
for record in re.findall(r'(.*?)(\$.*?\$)|(.*?$)',allData,flags=re.DOTALL) :
print repr(record)
我得到的输出是:
('\n1\n2\n3 here Some text in here \n', '$file1.txt$', '')
('\n4 Some text in here and more ', '$file2.txt$', '')
('\n5 Some text ', '$file3.txt$', '')
(' here \n', '$file3.txt$', '')
('', '', '\n6\n')
('', '', '')
('', '', '')
我真的很想要这个输出:
('\n1\n2\n3 here Some text in here \n', '$file1.txt$')
('\n4 Some text in here and more ', '$file2.txt$')
('\n5 Some text ', '$file3.txt$')
(' here \n', '$file3.txt$')
('\n6\n', '', )
背景信息,以防您需要查看大图。
我想你有兴趣,我正在用 python 重写它。我控制了其余的代码。我只是从 findall 中得到了太多东西。