我希望根据以下正则表达式在网页上获取匹配项: (。*) 我在regexpal.com(一个在线正则表达式测试工具)上测试它,它工作正常。 但是,当我在php中使用它时,我找不到任何匹配项。我在php中使用的语句是
preg_match_all("/<a href=\"\/title\/.*\/\">(.*)<\/a>/", $content, $matches);
我检查了$内容,这是正确的。那么我的陈述有什么不对吗?谢谢!
答案 0 :(得分:4)
请...为了上帝的爱,请不要在/中包装处理URL或HTML的正则表达式。你必须在整个地方逃避它。它是可怕的。看这里:
preg_match_all('~<a href="/title/[^">]+/">(.*?)</a>~si', $content, $matches);
有更多方法可以改善这一点,但这应该做到。
希望它有所帮助。
答案 1 :(得分:1)
您需要添加?
&gt;&gt;
preg_match_all("/<a href=\"\/title\/.*?\/\">(.*?)<\/a>/", $content, $matches);
答案 2 :(得分:0)
preg_match_all("/<a href\=\"\/title\/.*\/\">(.*?)<\/a>/", $content, $matches);
我会尝试:
preg_match_all('/<a href\=".title.*">(.*?)<\/a>/', $content, $matches);
为了简洁。