string pattern = @"\[NT:unLoop,[^\]]+\][\s\S]*?\[/NT:unLoop\]|\[NT:Loop,[^\]]+\][\s\S]*?\[/NT:Loop\]";
Regex reg = new Regex(pattern, RegexOptions.Compiled);
Match m = reg.Match(_tempfinallyconent);请帮我解释一下pattern这个正则表达式,希望解释准确一点,各个符号的用意。我知道一些单个符号的意思,但是一串起来就看不懂了,希望好心人帮帮忙,万分感谢。

解决方案 »

  1.   

    大意是:
    匹配 [NT:unLoop]至[/NT:unLoop]
    或 [NT:Loop]至[/NT:Loop] 这样的标签
    http://download.csdn.net/source/2844387
      

  2.   

    string pattern = @"\[NT:unLoop,[^\]]+\][\s\S]*?\[/NT:unLoop\]|\[NT:Loop,[^\]]+\][\s\S]*?\[/NT:Loop\]";
    分解下说明:
    1. [NT:unLoop,P1]P2[/NT:unLoop]P1代表"[^\]]+" 表示至少一个以上不是"]"的字符
    P2代表"[\s\S]*?" 表示任意字符0个或者多个(\s表示空白字符,\S表示非空白字符)
                    "?"表示非贪婪匹配,匹配到第一个[/NT:unLoop]就停下。