0

我有一个字符串,我想在其中只获取那些没有类的 DIV 标签的内容image

我正在使用这个正则表达式:

#<\s*?div\b[^>]*class="[^image]">(.*?)</div\b[^>]*>#s

但它会转义所有 DIV 标签,而不仅仅是带有类的标签image

4

2 回答 2

1

改用DOM 解析器可能会更好。

无论如何,这是一个应该做你所追求的正则表达式:

<div[^>]+class="(?!(?:.+ )?image(?: .+)?")([^"]+)"

演示:http ://rubular.com/r/eekxdFdmFR

于 2013-06-12T09:22:24.613 回答
0

该表达式[^image]将仅查找那些不包含iANDm等字母的类。也许负前瞻可以解决问题:

#<\s*?div\b[^>]class=\"(?:(?!image).)*\">(.?)*>#s

它也会解雇class="images"等,但我希望这是一个好的开始。:)

PS:我不知道最后一个]是否必要,但我的正则表达式中缺少它。

于 2013-06-12T09:02:00.623 回答