正则表达式匹配后返回意外结果

时间:2015-10-23 00:29:22

标签: php regex hyperlink preg-match

我使用正则表达式来匹配链接,但结果却缺少一个重要的部分。匹配后,它错过了''在链接中出于某种原因。为什么会发生这种情况,我该如何解决?

$link = "/w/index.php?title=Category:English_verbs&pagefrom=AFFAMISH%0Aaffamish#mw-pages";
$regex = "~^/.+~";

preg_match($regex, $link, $match);

print_r($match);

结果:

Array ( [0] => /w/index.php?title=Category:English_verbs&pagefrom=AFFAMISH%0Aaffamish#mw-pages )

^ ---此结果缺少amp;verbs&之间的pagefrom

预期结果:

Array ( [0] => /w/index.php?title=Category:English_verbs&pagefrom=AFFAMISH%0Aaffamish#mw-pages )

1 个答案:

答案 0 :(得分:0)

It's not。您可能只是在浏览器中查看输出,如果发送了Content-type text/html标头,则浏览器会将其作为HTML处理(,因此{{1} }变成& )。

尝试在CLI中查看以避免此问题,或者如果您坚持在浏览器中查看它,请使用&