【发布时间】:2013-05-26 06:17:30
【问题描述】:
如何正则表达式匹配两个字符串之间的所有内容? 两个字符串之间的东西跨越了几行,也可以包含所有的html字符。
例如:
<p>something</p>
<!-- OPTIONAL -->
<p class="sdf"> some text</p>
<p> some other text</p>
<!-- OPTIONAL END -->
<p>The end</p>
我想去掉整个可选部分。但是贪婪的任何字符匹配都没有做我想要的..我使用的模式是
<!-- OPTIONAL -->.*<!-- OPTIONAL END --><!-- OPTIONAL -->(.*)<!-- OPTIONAL END --><!-- OPTIONAL -->(.*)\s+<!-- OPTIONAL END -->(?=<!-- OPTIONAL -->)(.*)\s+<!-- OPTIONAL END -->
如果只给出第一部分,它们都匹配第一个可选标签,但不适合完整的行。
这是一个例子:http://regexr.com?352bk
谢谢
【问题讨论】:
-
你不应该使用正则表达式。 stackoverflow.com/q/1732348/34397
-
你使用什么语言?
-
@SLaks XML 解析器是否考虑了 HTML cmets?
-
@rednaw:1)是的; XML 使用相同的注释语法。 2)htmlagilitypack.codeplex.com
-
@SLaks 你将如何去掉可选部分并返回其他所有内容?
标签: regex