繁体   English   中英

如何编写多行RegEx表达式

[英]How to write a Multi-line RegEx Expression

我有一个vb.net类,可以在通过电子邮件发送结果之前清除一些html。

这是一些我需要删除的html示例:

    <div class="RemoveThis">
      Blah blah blah<br /> 
      Blah blah blah<br /> 
      Blah blah blah<br /> 
      <br /> 
    </div>

我已经在使用RegEx来完成大部分工作。 RegEx表达式看起来像什么,什么都不用替换上面的块?

我尝试了以下操作,但是出了点问题:

'html has all of my text
html = Regex.Replace(html, "<div.*?class=""RemoveThis"">.*?</div>", "", RegexOptions.IgnoreCase)

谢谢。

添加单行选项:

html = Regex.Replace(html, "<div.*?class=""RemoveThis"">.*?</div>", "", RegexOptions.IgnoreCase Or RegexOptions.Singleline)

MSDN

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

PS: 不建议使用正则表达式解析HTML。 您的代码将因以下原因而失败:

<div class="RemoveMe">
    <div>bla</div>
    <div>bla</div>
</div>

尝试:

RegexOptions.IgnoreCase Or RegexOptions.Singleline

RegexOptions.Singleline选项将点的含义从“匹配除新行以外的任何内容”更改为“匹配任何内容”。

另外,如果需要解析HTML,则应考虑使用HTML解析器代替正则表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM