RegEx使用特定ID获取整个div?

时间:2010-08-12 12:00:48

标签: html regex

我有一些包含firebug隐藏div的标记。 (长话短说,YUI RTE发布的内容包括隐藏的firebug div是活跃的)

所以,在我发布的内容中,我有额外的div,我将在PHP中删除服务器端:

<div firebugversion="1.5.4" style="display: none;" id="_firebugConsole"></div>

我似乎无法处理我需要编写以匹配此字符串的正则表达式,请记住它并不总是那么精确的字符串(版本可能会更改)。

欢迎所有帮助!

4 个答案:

答案 0 :(得分:2)

正则表达式不是这项工作的最佳工具,但您可以尝试:

<div firebugversion=[^>]*></div>

[…]character class。像[aeiou]这样的东西匹配任何一个小写元音。 [^…]否定的字符类。 [^aeiou]除了小写元音之外的任何内容匹配。

*是零或更多repetition。因此,[^>]*匹配除>之外的任何序列。

如果您想专门定位id,可以尝试:

<div [^>]*\bid="_firebugConsole"[^>]*></div>

\bword boundary锚。

答案 1 :(得分:2)

匹配此正则表达式 -

<div.*id="_firebugConsole".*?/div>

答案 2 :(得分:1)

我会建议:

 \<div firebugversion="(.+)" style="(.+)" id="(.+)"\>

然后你有三组:

  1. firebugversion
  2. ID

答案 3 :(得分:1)

这个有点复杂,可能并不完美,但它会:

  • 匹配包含属性firebugversion
  • 的任何div
  • 匹配firebugversion属性,无论标记
  • 中出现哪个订单属性
  • 匹配div,即使它包含它与其结束标记之间的内容或间距(我之前看到过带有&amp; nbsp;标记的firebug标记)注意:它会进行延迟匹配,因此它只会匹配下一个标记,而不是它在文档中找到的最后一个标记
  

<(div)\b([^>]*?)(firebugversion)([^>]*?)>(.*?)</div>