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


            /// <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;
            }

    改进:添加参数是否包含左右字符

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

    测试:

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

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

  • 相关阅读:
    MySQL-EXPLAIN执行计划字段解释
    MySQL-EXPLAIN执行计划Extra解释
    HTTP与HTTPS的区别
    【面试】Java中sleep和wait的区别
    Nginx之前后端分离(入门)
    玩程序 之 一 . 字符串处理工具(可通过C#脚本扩展)
    C#实现下载功能,可用于软件自动更新
    对c#剪切板Clipboard占用的问题一点解决方法
    C# 制作 仪表
    C#使用自定义字体(从文件获取)
  • 原文地址:https://www.cnblogs.com/feigao/p/6638795.html
Copyright © 2020-2023  润新知