C# 正则表达式取两个关键词之间的内容

<!---go--->qwertyasddffasdfffadffggafhgujujikuy……asdsqsdw<!---over--->里面有很多行怎么取出来呢... <!---go--->qwerty
asddff
asdfff
adffgg
afhgujujikuy
……
asdsqsdw<!---over--->

里面有很多行怎么取出来呢
展开
 我来答
yugi111
推荐于2018-04-19 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
public void ShowStructure()
{
        //要匹配的字符串
        string text = "<!---go--->qwerty\r\nasddff\r\nasdfff\r\nadffgg\r\nafhguj\r\nujikuy\r\n……\r\nasdsqsdw<!---over--->";
        //正则表达式
        string pattern = @"<!---go--->((?:(?!<!---over--->)[\s\S])*)<!---over--->";
        //使用RegexOptions.IgnoreCase枚举值表示不区分大小写
        Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
        //使用正则表达式匹配字符串,仅返回一次匹配结果
        Match m = r.Match(text);
        while (m.Success)
        {

                //显示匹配开始处的索引值和匹配到的值
                System.Console.WriteLine("Match=[" + m + "]");
                CaptureCollection cc = m.Captures;
                foreach (Capture c in cc)
                {
                        Console.WriteLine("\tCapture=[" + c + "]");
                }
                for (int i = 0; i < m.Groups.Count; i++)
                {
                        Group group = m.Groups[i];
                        System.Console.WriteLine("\t\tGroups[{0}]=[{1}]", i, group);
                        for (int j = 0; j < group.Captures.Count; j++)
                        {
                                Capture capture = group.Captures[j];
                                Console.WriteLine("\t\t\tCaptures[{0}]=[{1}]", j, capture);
                        }
                }
                //进行下一次匹配.
                m = m.NextMatch();
        }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式