Python:在第一次出现的两个子字符串之间找到一个字符串

2024-09-28 21:36:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一段文字:

text='gn="right" headers="gr-Y10 gr-eps i36">121.11<\\/td><\\/tr><tr class="hr"><td colspan="12"><\\/td><\\/tr><tr>'

我想使用regex从中获取值121.11。 所以我这样做了:

^{pr2}$

我把这个作为输出:

'121.11<\\/td><\\/tr><tr class="hr"><td colspan="12">'

我怎样才能得到我真正想要的东西,它是121.11,而不是上面的那一行?在


Tags: textrighthrepstrclassregextd
2条回答
gr-Y10 gr-eps i36">(.*?)<\\\\/td

                      ^^

通过附加?,使你的*非贪婪。通过使其非贪婪,它将在<\\\\/td的第一个实例处停止,否则它将捕获到最后一个<\\\\/td。在

参见演示。在

{a1}

知道了source of the input data并考虑到它是HTML,下面是一个涉及到HTML解析器的解决方案,^{}

soup = BeautifulSoup(input_data)

for row in soup.select('div#tab-growth table tr'):
    for td in row.find_all('td', headers=re.compile(r'gr-eps')):
        print td.text

基本上,对于“growth”表中的每一行,我们都在查找标题中带有gr-eps的单元格(“表的EPS%”部分)。它打印:

^{pr2}$

This is a good read还有。在

相关问题 更多 >