PHP:只从正则表达式中获取匹配的一部分

时间:2011-10-23 20:46:42

标签: php regex

我正在尝试使用PHP正则表达式从网页上获取一些URL。

我这样做:

preg_match_all('/"r"><a href="http:.*?"/i',$Rec_Data, $stuff );

这可以返回url,但是我也得到了我不想要的代码:

"r"><a href="http://www.cbsnews.com/stories/2002/12/03/politics/main531460.shtml"

我无法摆脱“r”和“a”标签。我需要它所以我不匹配我不想要的URL。如何仅获得与“。*?”匹配的部分?

1 个答案:

答案 0 :(得分:3)

使用capturing group并使用结果中的第二个元素:

preg_match_all('/"r"><a href="(http:.*?)"/i',$Rec_Data, $stuff );

查看在线工作:ideone

此外,您可能需要考虑使用HTML parser来解析HTML而不是正则表达式。