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

时间:2014-07-16 19:49:46

标签: python regex parsing

我有一个html输出,其中包含:

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

我尝试使用以下方式提取价格:

prices = re.findall(r'<span class="value">.*?(\d{1,3}\.?\d{1,2}).*?</span>',search_result)

有时小数被替换为 - 当有00时,我也需要这2个数字,这些数字被表达式提取23 07加入2307

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

从索引1获取匹配的组。

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

demo


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

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

demo


如果您只对<span>代码感兴趣,请尝试以下正则表达式

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

demo

示例代码:

import re
p = re.compile(ur'<span [^>]*>(\d+)\D(\d+)\D[^<]*')
test_str = u"..."

re.findall(p, test_str)