使用正则表达式从视频中提取值

时间:2011-08-01 20:55:22

标签: regex

我在下面的代码中有这个大丑陋的块。我的问题是如何使用正则表达式提取@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并解析出来。但是我如何在标签内的代码?

3 个答案:

答案 0 :(得分:1)

一点都不?为什么不使用适合此目的的工具,如XML解析器或某些标签汤解析器,如BeautifulSoup?

答案 1 :(得分:1)

如果您知道,param标记的名称和值attrributes将始终按顺序(名称优先),那么此正则表达式应该可用(未经测试):

<param.+?name=['"]@videoPlayer['"].+?value=['"]([^'"]+)['"]

如果您知道该属性的引号始终是双引号,则可以将['"]的所有实例替换为",如下所示:

<param.+?name="@videoPlayer".+?value="([^"]+)"

标签的值部分将存储在后引用$ 1中。

但是这里有很多假设应该加以考虑。

答案 2 :(得分:0)

试试这个:

/<param name="@videoPlayer" value="([^\"\']+)"/