Python re.findall怎么提取两个含符号的字符段中间的内容

需查找的内容:

<td class="abcde:0:no_22" style="white;"><center>需要提取的内容1</center>

<td class="abcde:1:no_22" style="white;"><center>需要提取的内容2</center>

<td class="abcde:2:no_22" style="white;"><center>需要提取的内容3</center>

#使用这条匹配返回结果为空​​​​​
'''no_222" style="white;"><center>(.*)</center>'''

#使用这条匹配能正常查到匹配条件的内容
'''no_222" style="white;">'''
 
#使用这条匹配返回结果就为空了​​​​​
'''no_222" style="white;"><'''

 

import re

txt ='''
<td class="abcde:0:no_22" style="white;"><center>需要提取的内容1</center>
<td class="abcde:1:no_22" style="white;"><center>需要提取的内容2</center>
<td class="abcde:2:no_22" style="white;"><center>需要提取的内容3</center>
'''
res = re.findall(r':no_22" style="white;"><center>(.*?)</center>',txt)
print(res)

输出结果

['需要提取的内容1', '需要提取的内容2', '需要提取的内容3']

是要找<center>需要提取的内容1,还是需要提取的内容1?

import re
html='''
<td class="abcde:0:no_22" style="white;"><center>需要提取的内容1</center>
<td class="abcde:1:no_22" style="white;"><center>需要提取的内容2</center>
<td class="abcde:2:no_22" style="white;"><center>需要提取的内容3</center>
'''
result = re.findall('no_22" style="white;"><center>(.*?)</center>',html,re.S)
print(result)

 

两个含符号的字符段也不一定是center吧?

既包括了中间的center,而且也提出了后面的内容的代码如下:

import re

html = '''
<td class="abcde:0:no_22" style="white;"><center>需要提取的内容1</center>
<td class="abcde:1:no_22" style="white;"><center>需要提取的内容2</center>
<td class="abcde:2:no_22" style="white;"><center>需要提取的内容3</center>
'''
result = re.findall('td.*?<center>(.*?)</center>', html, re.M)
print(result)

 

re.findall(
    r'<td class="abcde:\d+:no_22" style="white;"><center>(.*)</center>', t)