我在下面的代码中有这个大丑陋的块。我的问题是如何使用正则表达式提取@videoPlayer参数值?
谢谢!
----大胆的代码块----
<object id="myExperience121212" class="BrightcoveExperience">
<param name="bgcolor" value="#FFFFFF" />
<param name="width" value="640" />
<param name="height" value="360" />
<param name="playerID" value="fdafafdafda" />
<param name="playerKey" value="fdfadfafdadfafafdadf" />
<param name="isVid" value="true" />
<param name="isUI" value="true" />
<param name="dynamicStreaming" value="true" />
<param name="@videoPlayer" value="10574655567001" />
</object>
..对不起伙计们,这是完整的代码。在此之前会有一些javascript,因此使用XML是不可能的。我需要一个正则表达式,这将有效。
更新2:好的,如果我可以在object标签中获取文本,那么我可以将其转换为XML并解析出来。但是我如何在标签内的代码?
答案 0 :(得分:1)
一点都不?为什么不使用适合此目的的工具,如XML解析器或某些标签汤解析器,如BeautifulSoup?
答案 1 :(得分:1)
如果您知道,param标记的名称和值attrributes将始终按顺序(名称优先),那么此正则表达式应该可用(未经测试):
<param.+?name=['"]@videoPlayer['"].+?value=['"]([^'"]+)['"]
如果您知道该属性的引号始终是双引号,则可以将['"]
的所有实例替换为"
,如下所示:
<param.+?name="@videoPlayer".+?value="([^"]+)"
标签的值部分将存储在后引用$ 1中。
但是这里有很多假设应该加以考虑。
答案 2 :(得分:0)
试试这个:
/<param name="@videoPlayer" value="([^\"\']+)"/