擅长:python、mysql、java
<p>^匹配字符串的开头</p>
<p>$匹配字符串的结尾</p>
<p>findall返回所有匹配项的列表,如果使用(捕获组),它将返回捕获组</p>
<p>(?:)是非捕获组</p>
<p>*是贪婪的,*?不是</p>
<p>此解决方案应适用于:</p>
<pre><code>import re
file = open('testnew.txt', 'r')
i=0
for x in re.findall(r"((?:.|\n)*?)(?:(?:^|\n)\d{4}\n|$)", file.read()):
if x: # skip empty matches
f = open('%d.txt' %i,'w')
f.write(x)
f.close()
print (x,i)
i = i+1
</code></pre>