在标签之间刮掉所有html

时间:2013-04-27 00:01:36

标签: .net regex

似乎无法在经过数小时的搜索和反复试验后获得此信息。我试图在两个html标签之间返回文本。问题是文本跨越多行。这是一个例子。如果有人能找到一个正则表达式来匹配html标签之间的所有内容。

<section id="mysection">
The text always starts on the line after the opening section tag.
It can be anything and even span multiple lines.
The closing tag always comes after the last line of text.
</section>

我已经尝试了

Regex.Match(html, "<section id=\"mysection\">/s+(.*?)/s+</section>");

取得了一些成功,但只有在有一行文字的情况下才有效,而如果我们有换行符号则不行。使用上面的示例,我希望它匹配&#34;文本始终在开始部分标记之后的行上开始。     它可以是任何东西甚至跨越多行。     结束标记始终位于最后一行文本之后。&#34;

1 个答案:

答案 0 :(得分:1)

使用此:

Regex.Match(html, "\\<section id=\"mysection\"\\>(.*?)\\</section\\>", 
            RegexOptions.Singleline);

根据RegexOptions.Singleline的文档:

  

指定单行模式。更改点(。)的含义,使其匹配每个字符(而不是除\ n之外的每个字符)。

此外,您的尖括号需要转义。