正则表达式 取两字符中间的字符串(双向非贪婪模式)

Posted 开拓丿飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式 取两字符中间的字符串(双向非贪婪模式)相关的知识,希望对你有一定的参考价值。

        /// <summary>
        /// 获取某字符串中间的字符串,非贪婪模式
        /// </summary>
        /// <param name="input">全字符串</param>
        /// <param name="left">左边字符</param>
        /// <param name="right">右边字符</param>
        /// <returns></returns>
        public static List<string> GetCenterString(String input, String left, String right)
        {
            List<string> list = new List<string>();
            Regex reg = new Regex(left + "(((?!" + left + ").)+?)" + right);
            foreach (Match m in reg.Matches(input))
            {
                list.Add(m.Value);
            }

            return list;
        }

测试:

 string all = @"这是一段测试数据{{dasdasdas}}这是一段测试数据{{ddd}{这是一段测试数据{{dasd}";
            List<string> strList = StringPlus.GetCenterString(all, "{", "}");

输出结果:{dasdasdas}{ddd}、{dasd}

以上是关于正则表达式 取两字符中间的字符串(双向非贪婪模式)的主要内容,如果未能解决你的问题,请参考以下文章

第11.9节 Python正则表达式的贪婪模式和非贪婪模式

正则表达式的贪婪和非贪婪模式

正则表达式贪婪与非贪婪比较

正则表达式贪婪与非贪婪模式

JavaScript正则表达式--非贪婪模式截取任意字符串的笔记

贪婪模式与非贪婪模式