URL 使用正则表达式时被截断
URL truncated when using regex
我正在尝试从 HTTP GET 响应中提取 URL,因此必须提取类似“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
时,文本不会被剪切。
这应该有效:
my $var = "http://www.google.co.uk";
if ($var =~ m!((https?)://(www\.)?[a-z0-9.:]*)!ig)
{
print "\n";
}
您需要删除正先行断言。
my $var = "http://www.google.co.uk";
print $var =~ m/https?:\/\/(?:www\.)?[a-z0-9\.:]\S+/ig;
我正在尝试从 HTTP GET 响应中提取 URL,因此必须提取类似“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
时,文本不会被剪切。
这应该有效:
my $var = "http://www.google.co.uk";
if ($var =~ m!((https?)://(www\.)?[a-z0-9.:]*)!ig)
{
print "\n";
}
您需要删除正先行断言。
my $var = "http://www.google.co.uk";
print $var =~ m/https?:\/\/(?:www\.)?[a-z0-9\.:]\S+/ig;