如何在python中使用正则表达式从html中提取价格

如何在python中使用正则表达式从html中提取价格,python,regex,parsing,Python,Regex,Parsing,我有一个html输出,其中包含以下内容: <span class="value"> Price:<br> <span style="color:white">23,07€ </span> </span> 价格: 23,07€ 我尝试使用以下方法提取价格: prices = re.findall(r'<span class="value">.*?(\d{1

我有一个html输出,其中包含以下内容:

<span class="value">
            Price:<br>
            <span style="color:white">23,07€ </span>
        </span>

价格:
23,07€
我尝试使用以下方法提取价格:

prices = re.findall(r'<span class="value">.*?(\d{1,3}\.?\d{1,2}).*?</span>',search_result)
prices=re.findall(r'.*?(\d{1,3}.?\d{1,2})。*?',搜索结果)
有时小数被替换为-,当有00时,我还需要这两个数字,由表达式23 07 2307提取


感谢您抽出时间。

从索引1中获取匹配的组

(?<=>)(\d[^€]*)
(?)(\d[^欧元]*)


或者为每个数字获取匹配的组索引1和2

(?<=>)(\d+)\D(\d+)\D
(?)(\d+)\d(\d+)\d


如果您只对
标记感兴趣,请尝试下面的正则表达式

<span [^>]*>(\d+)\D(\d+)\D[^<]*

]*>(\d+)\d(\d+)\d[^强制引用:若要加入,请使用“23”+“07”,或者如果它们是整数,请使用“%d%02d%”(23,7)第二个选项更好,因为当一个页面以美元加载时,价格将为23.07,而且我有兴趣只删除该类的跨距,结果为2307使其浮动和/100以获得价格。是的,使用第二个选项。测试所有情况,如果通过,则通过勾选绿色标记接受答案。输出为:('332','15')('0','29')('1','22')…第一组不应该在那里,我们可以让span有那个类吗?是的,如果span已经知道,你可以在span中添加这个类。我根据没有class属性的示例html回答。+1表示多个选项,
(?)
,看起来很有趣。:)
import re
p = re.compile(ur'<span [^>]*>(\d+)\D(\d+)\D[^<]*')
test_str = u"..."

re.findall(p, test_str)