【发布时间】:2011-03-26 07:18:46
【问题描述】:
我有以下字符串:
<div> text0 </div> prefix <div> text1 <strong>text2</strong> text3 </div> text4
并想知道它是否包含 text3 在前缀后面的 div 中:
prefix<div>...text3...</div>
但我不知道如何为此制作正则表达式,因为我不能使用[^<]+,因为 div 可以在里面包含strong 标签。
请帮忙
编辑:
- 前缀后的div标签保证不嵌套
- 语言是 C#
- Text4 很长,所以 regex 一定不要在关闭 div 后查看
EDIT2:我不想使用 html 解析器,它可以通过 Regex 轻松(并且更快)实现。 HTML 很简单:标签中没有属性;没有嵌套 div。在我的情况下,即使有 % 的错误答案也是可以接受的。
【问题讨论】:
-
您不能(可靠地)为此使用正则表达式,因为正如您所指出的,正则表达式不处理非正则语言功能,例如 HTML 的嵌套/等。 您需要使用 HTML DOM 解析器 - 您尝试使用哪种语言?
-
你可能想了解jquery
-
什么语言?不同的语言支持不同的 RegEx 功能,并且它们不相同。即使 RegEx 是错误的解决方案,推荐一个好的解决方案也需要了解您使用的语言。
-
@Peter Boughton:如果有人问这个问题,那应该是一个自动答案:)
-
Poma,对于 C#,看看 HtmlAgilityPack - htmlagilitypack.codeplex.com
标签: c# regex html-parsing html-agility-pack