使用Perl,我試圖解析一堆XML文件並試圖在XML中找到任何形式的URL並打印它。我的正則表達式似乎不起作用,它沒有返回任何匹配。我錯過了什麼?URL正則表達式不起作用
sub findURL{
local($inputLine, $outText);
$inputLine = $_[1];
while (length($inputLine) > 0)
{
if ($inputLine =~ /^(((http|https|ftp):\/\/)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]\/+=%&_\.~?\-]*))*$/)
{
$outText .= $&;
$inputLine = $';
}
else
{
$inputLine = "";
$outText .= "";
}
}
return $outText;
}
我不熟悉Perl但語法標記不匹配由於$ inputLine = $「; - 這可能也會影響你的問題。 – bradenkeith 2010-08-31 13:54:47
@bradenkeith不,這只是SO的braindead語法高亮。 '$''是保存正則表達式匹配後的有效變量;但是,它不應該被用作預匹配,匹配和後期匹配已被替換爲不會減慢所有正則表達式代碼的捕獲。 – 2010-08-31 14:00:42
@Chas。我認爲歐文斯是這方面的事情。只是覺得我只是指出了事情。感謝您的解釋。 – bradenkeith 2010-08-31 14:15:18