preg_match a <link /> href

时间:2012-02-19 23:51:02

标签: php regex preg-match href

我正在尝试做一些我认为简单但没有运气的事情。目标是从任何标签中获取href值。例如:

来源材料:

<link href="http://www.somesite.com/test.css" rel="stylesheet" type="text/css">

RegEx尝试:

<link[^>]*href=["{1}](.*?)["{1}][^>]*>

它似乎在http://regexpal.com/有效,但我在http://www.solmetra.com/scripts/regex/index.php尝试,但是它无效。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在字符类{1}内部看起来像[]之后应该真正遵循它。实际上,它甚至没有必要,因为它是隐含的。但相反,您应该使用[^"]来匹配下一个引用的所有内容:

<link[^>]*href="([^"]*)"[^>]*>

注意:您只是尝试匹配双引号href属性。如果您希望遇到任何单引号属性,则需要进行修改。

强制性公共服务公告:最好使用正确的HTML解析库来解析HTML并检索属性,而不是尝试使用正则表达式解析它。