我有一个html文件,我正在尝试搜索一个模式,当我找到它时,打印设置的模式之间的所有行。在我的情况下,“ pre和/ pre”之间的所有内容都包含茎循环序列。我的目标是对大量html文件进行排序,并提取出这些结构并将它们放在列表中,该列表可以像出现在html文件中一样打印出来。我无法正确捕获所有行并正确打印它们,就像出现在图片中一样。目前我只打印两行,pre cugcaggcagaaguggggcugaca / pre和pre ccucaccaccccuucugccugca / pre
为什么不捕获图案中的所有内容并正确打印?它跳过了span和span类。.我不确定我是否正确解决了这个问题-是否有更好的方法来考虑这一点?谢谢
fh_html = open("filename").readlines()
for line in fh_html:
match_obj = re.search(r'<pre>.*</pre>', line, re.DOTALL)
print(match_obj.group(0))
<pre>ggggc <span class="sld">u</span> - <span class="sld">c</span> <span class="sld">ca</span> agag
<span class="sld">cugcaggcagaag</span> <span class="sld">ggg</span> <span class="sld">g</span> <span class="sld">uga</span> gggc g
||||||||||||| ||| | ||| ||||
g<span class="sld">acguccgucuuc</span> <span class="sld">ccc</span> <span class="sld">c</span> <span class="sld">acu</span> cccg g
----- - <span class="sld">a</span> <span class="sld">c</span> <span class="sld">cc</span> cguu </pre>
这是代码:
您将每一行传递给正则表达式,而不是整个文本。
尝试一下:
text = open("filename").read()
match_obj = re.search(r'<pre>.*</pre>', text, re.DOTALL)
print(match_obj.group(0))