<DIV id=content>任意字符有可能是多行,也可能是一行</DIV>
<DIV id="content">任意字符有可能是多行,也可能是一行</DIV>
<div id=content>任意字符有可能是多行,也可能是一行</div>
<div id="content">任意字符有可能是多行,也可能是一行</div>
如何用一个正则同时能在以上四种情况都取到"任意字符有可能是多行,也可能是一行"部分内容?

解决方案 »

  1.   


    <div[^>]*id\s*=['"]?content[^>]*>([\s\S]*?)</div>
      

  2.   

    try...string test = @"<DIV id=content>任意字符有可能是多行,
    也可能是一行</DIV>
    <DIV id=""content"">任意字符有可能是多行,也可能是一行</DIV>
    <div id=content>任意字符有可能是多行,
    也可能是一行</div>
    <div id=""content"">任意字符有可能是多行,也可能是一行</div>
    ";
    Regex reg = new Regex(@"(?is)<div\s+id=(['""]?)content\1\s*>(.*?)</div>");
    MatchCollection mc = reg.Matches(test);
    foreach (Match m in mc)
    {
        richTextBox2.Text += m.Groups[2].Value + "\n";
    }
      

  3.   

            string str = "<DIV id=content>任意字符有可能是多行,也可能是一行</DIV>"
                 + "<DIV id=\"content\">任意字符有可能是多行,也可能是一行</DIV>"
                 + "<div id=content>任意字符有可能是多行,也可能是一行</div>"
                 + "<div id=\"content\">任意字符有可能是多行,也可能是一行</div>";
            Regex reg = new Regex(@"(?is)<div[^>]*?id=(['""\s]?)content\1[^>]*?>(?<content>((?!</?div).)*)");
            MatchCollection match = reg.Matches(str);
            foreach (Match m in match)
            {
                Response.Write(m.Groups["content"].Value + "<br/>");
            }
    /*
    任意字符有可能是多行,也可能是一行
    任意字符有可能是多行,也可能是一行
    任意字符有可能是多行,也可能是一行
    任意字符有可能是多行,也可能是一行
    */