本帖最后由 liaodan520 于 2010-04-22 21:09:27 编辑

解决方案 »

  1.   

     string strHtml = @"<html>
        <head>
            <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" />
            <title>bbb</title>
        </head>
        <body>
            {$arclist(0,1,id,22,1)$}
                <li>
                    <a href="">{$ArticleTitle}</a>
                </li>
            {$/arclist$}
        </body>
    </html>
    ";
                            string pattern = @"{\$arclist\((\d+?),(\d+?),(\w+?),(\d+?),(\d+?)\)\$\}(.+?)\{\$/arclist\$\}";            Regex reg2 = new Regex(pattern, RegexOptions.Singleline);
                MatchCollection matchs = reg2.Matches(strHtml);
    int i=matchs.Count();//i显示1
      

  2.   

    可能你没设置单行模式,还有。你这里其实少用非贪婪模式还快一点,我帮你修改了一下。可以通过测试
    @"(?is){\$arclist\((\d+),(\d+),(\w+),(\d+),(\d+)\)\$\}(.+?)\{\$/arclist\$\}"
      

  3.   

    还有一点,{}不用转义
    @"(?is){\$arclist\((\d+),(\d+),(\w+),(\d+),(\d+)\)\$\}(.+?){\$/arclist\$}"
    这样就可以了。