我试图从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
时,文字不会被删除。
答案 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;