特定标记的正则表达式

Bul*_*nes 2 .net regex

我正在.NET项目中使用正则表达式来获取特定标记.我想匹配整个DIV标签及其内容:

<html>
   <head><title>Test</title></head>
   <body>
     <p>The first paragraph.</p>
     <div id='super_special'>
        <p>The Store paragraph</p>
     </div>
     </body>
  </head>
Run Code Online (Sandbox Code Playgroud)

码:

    Regex re = new Regex("(<div id='super_special'>.*?</div>)", RegexOptions.Multiline);


    if (re.IsMatch(test))
        Console.WriteLine("it matches");
    else
        Console.WriteLine("no match");
Run Code Online (Sandbox Code Playgroud)

我想要匹配这个:

<div id="super_special">
   <p>Anything could go in here...doesn't matter.  Let's get it all</p>
</div>
Run Code Online (Sandbox Code Playgroud)

我以为.应该得到所有的角色,但似乎有回车问题.我的正则表达式遗失了什么?

谢谢.

Jör*_*tag 6

拜托,拜托,你自己一个巨大的青睐:使用HTML解析器解析HTML.认真.这就是他们的目的.

HTML是一种非常复杂的语言.无论你将多长时间调整,摆弄,修复,磨练你的Regexp,总会有一个你想念的案例.

无论如何,你必须告诉你的Regexp引擎匹配多行,而不只是一行.在一些最流行的那些中,你通过应用/m修饰符来做到这一点.

但请允许我再说一遍:使用HTML解析器.每当有人使用正则表达式解析HTML时,小猫就会死...