2010-09-16 63 views
1

我试图在Youtube视频页面上匹配一些Javascript。该模式多数民众赞成每个视频同样是这样的:无法使用preg_match匹配此主题

<param name=\"flashvars\" value=\"somethingsomethingsomething\"> 

我需要摆脱一切value,在这种情况下somethingsomethingsomething。它被注释掉,因为它嵌入在Javascript中。这是我使用的代码:

preg_match('<param name=\\"flashvars\\" value=\\"(.*)\\">', $ytPage, $match); 

$ytPage是YouTube页面的源代码。但是当我运行代码$matches永远不会返回匹配。

有什么我做错了吗?

+1

[RegEx match open tags but XHTML self-contained tags]可能的重复(http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – durron597 2015-09-07 21:24:56

+0

可能的[如何解析和处理PHP中的HTML/XML?]的副本(http://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in-php) – 2015-09-07 21:33:30

回答

1

你的问题是你应该用分隔符围绕你的正则表达式,例如斜杠。

preg_match('/...../', ...); 

示例代码:

$ytPage= "<param name=\"flashvars\" value=\"somethingsomethingsomething\">"; 
preg_match('/<param name=\\"flashvars\\" value=\\"(.*)\\">/', $ytPage, $match); 
print_r($match) 

结果:

 
Array 
(
    [0] => <param name="flashvars" value="somethingsomethingsomething"> 
    [1] => somethingsomethingsomething 
) 

ideone

如果你试图解析HTML,你可能要考虑,如果一个HTML解析器将是一个比正则表达式更适合的工具。

+0

对不起,'$ matches'是一个错字。真正的变量叫做'$ match'。上面提到的修复程序也不起作用。但我想我已经找到了问题。只有部分Youtube视频源代码以$ ytPage返回。我不知道这是否是cURL的限制(我得到页面的方式),还是其他东西......但现在至少我知道这部分工作。谢谢你的帮助 :) – Will 2010-09-16 23:59:06