正则表达式查找标记之间的所有子字符串保留额外的字符

Regex finding all substrings between markers keeps extra characters

我真的很困惑,因为我不认为那些是特殊字符。无论哪种情况,我都尝试在它们前面加上反斜杠。 但是我有一个很大的文本文件,基本上是 html 代码。我想在一些标签之间提取文本。 我在下面裁剪了一块:

b282yb keod5gw0 nxhoafnm aigsh9s9 d3f4x2em iv3no6db jq4qci2q a3bd9o3v lrazzd5p
 bwm1u5wc" dir="auto"><span class="a8c37x1j ni8dbmo4 stjgntxs l9j0dhe7 ltmttdrg
 g0qnabr5">Text #1</span></a></div><div class="aahdfvyu"></span></span></div>
</div><div class="n00jemau55g9w c8b282yb keod5gw0 nxhoafnm aigsh9s9 d3f4x2em 
mdeji52x a5q79mjw g1cxx5fr lrazzd5p oo9gr5id" dir="auto">Text #2</span></a></div>
<div class="aahdfvyu"><span class="d2edcug0 hpfvmrgz qv66sw1b c1e

我想要它 return ['Text #1', 'Text #2']

我试过

result = re.findall(r'>(.*?)</span></a></div><div class="aahdfvyu">', f)

但它返回

['<span class="a8c37x1j ni8dbmo4 stjgntxs l9j0dhe7 ltmttdrg g0qnabr5">Text #1', '</span></div></div><div class="n00jemau55g9w c8b282yb keod5gw0 nxhoafnm aigsh9s9 d3f4x2em mdeji52x a5q79mjw g1cxx5fr lrazzd5p oo9gr5id" dir="auto">Text #2']

所以它不会删除字符串之前的所有内容。为什么?

text="""b282yb keod5gw0 nxhoafnm aigsh9s9 d3f4x2em iv3no6db jq4qci2q a3bd9o3v
lrazzd5pbwm1u5wc" dir="auto"><span class="a8c37x1j ni8dbmo4 stjgntxs l9j0dhe7
ltmttdrgg0qnabr5">Text #1</span></a></div><div class="aahdfvyu"></span></span></div>
</div><div class="n00jemau55g9w c8b282yb keod5gw0 nxhoafnm aigsh9s9 d3f4x2emmdeji52x a5q79mjw g1cxx5fr lrazzd5p oo9gr5id" dir="auto">Text #2</span></a></div><div class="aahdfvyu"><span class="d2edcug0 hpfvmrgz qv66sw1b c1e"""

re.findall(r'>([^<]+)</span></a></div><div class="aahdfvyu">',text)

结果

['Text #1', 'Text #2']

demo