使用正则表达式时URL被截断

时间:2015-04-02 04:02:10

标签: regex perl cut

我试图从HTTP GET响应中提取网址,所以像#34; http://xxxxxxxxx.com"必须被提取。

(https?):\/\/(www\.)?[a-z0-9\.:].*?(?=\s)

但是当我得到它时,请使用让他们说......

$var = "http://www.google.co.uk"
print $var =~ m/(https?):\/\/(www\.)?[a-z0-9\.:].*?(?=\s)/ig; 

显示的字符串被截断,如:" http://www.google.com"没有别的。

为什么会这样?

使用REGEXR时,文字不会被删除。

2 个答案:

答案 0 :(得分:1)

这应该有效:

my $var = "http://www.google.co.uk";
if ($var =~ m!((https?)://(www\.)?[a-z0-9.:]*)!ig)
{
    print "$1\n";
}

答案 1 :(得分:1)

你需要删除积极的先行断言。

my $var = "http://www.google.co.uk";
print $var =~ m/https?:\/\/(?:www\.)?[a-z0-9\.:]\S+/ig;