我想在Youtube视频页面上匹配一些Javascript。每个视频的模式都是这样的:
<param name=\"flashvars\" value=\"somethingsomethingsomething\">
我需要了解value
中的所有内容,本例somethingsomethingsomething
。它被注释掉了,因为它嵌入在Javascript中。这是我正在使用的代码:
preg_match('<param name=\\"flashvars\\" value=\\"(.*)\\">', $ytPage, $match);
$ytPage
是youtube页面的源代码。但是当我运行代码$matches
时,永远不会返回匹配。
我有什么问题吗?
答案 0 :(得分: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 )
如果您正在尝试解析HTML,您可能需要考虑HTML解析器是否比正则表达式更合适。