我使用正则表达式解析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\.]+)
但那只给了我第一个。
答案 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";
}
此解决方案假设每行最多一个匹配。
您可以在此处浏览正则表达式: