正则表达式根据唯一的类

时间:2016-03-08 05:22:20

标签: regex perl

我使用正则表达式解析perl中的网站。 网站的内容如下所示:

(much text) </div> <div class="euroPrice"> <span>1.23</span> 
(much text) </div> <div class="euroPrice"> <span>2.34</span> (much text)

与(很多文本)beeing标准html。我想得到数字1.23和2.34,但我必须使用正则表达式。 任何提示?

我试过这样的事情:

class="euroPrice"> <span>([\d\.]+)

但那只给了我第一个。

2 个答案:

答案 0 :(得分:1)

最好先获得你的跨度(通过xpath)并使用@Tims的正则表达式得到跨度数字。获得跨度的xpath将是:

("//div[@class='euroPrice']/span")

答案 1 :(得分:0)

您可以迭代网站的文本,并为每一行应用以下代码:

$line = "(much text) </div> <div class="euroPrice"> <span>1.23</span>";
if ($line =~ /<div class="euroPrice"> <span>(\d+\.\d+)<\/span>/) {
    print "first a number: $1 in current line\n";
}

此解决方案假设每行最多一个匹配。

您可以在此处浏览正则表达式:

Regex101