zoukankan      html  css  js  c++  java
  • 2018-2-13-C#-通配符转正则

    title author date CreateTime categories
    C# 通配符转正则
    lindexi
    2018-2-13 17:23:3 +0800
    2018-2-13 17:23:3 +0800
    C#

    可以使用下面代码把通配符转正则字符串

        public static class WildcardRegexString
        {
            /// <summary>
            /// 通配符转正则
            /// </summary>
            /// <param name="wildcardStr"></param>
            /// <returns></returns>
            public static string GetWildcardRegexString(string wildcardStr)
            {
                Regex replace = new Regex("[.$^{\[(|)*+?\\]");
                return replace.Replace(wildcardStr,
                           delegate (Match m)
                           {
                               switch (m.Value)
                               {
                                   case "?":
                                       return ".?";
                                   case "*":
                                       return ".*";
                                   default:
                                       return "\" + m.Value;
                               }
                           }) + "$";
            }
        }

    文件经常是不需要区分大小写,所以需要写一个函数告诉用户,不需要区分大小写。

            /// <summary>
            /// 获取通配符的正则
            /// </summary>
            /// <param name="wildcarStr"></param>
            /// <param name="ignoreCase">是否忽略大小写</param>
            /// <returns></returns>
            public static Regex GetWildcardRegex(string wildcarStr, bool ignoreCase)
            {
                if (ignoreCase)
                {
                    return new Regex(GetWildcardRegexString(wildcarStr));
                }
                return new Regex(GetWildcardRegexString(wildcarStr), RegexOptions.IgnoreCase);
            }

    正则可以使用程序集方式,启动慢,但是运行快

              private static Regex _regex = new Regex("[.$^{\[(|)*+?\\]", RegexOptions.Compiled);

    我的软件就需要重复使用,于是就使用这个。

    代码:

    <script src="https://gist.github.com/lindexi/2bd3bccb6de194aa40ad2e09a5413000.js"></script>

    https://gist.github.com/lindexi/2bd3bccb6de194aa40ad2e09a5413000

  • 相关阅读:
    SQLAlchemy
    Redis
    Django框架详解
    nginx负载均衡(反向代理)
    Python 字典 fromkeys()方法
    docker容器的使用
    keepalived原理
    学习区块链必读的6本书
    MATLAB基础入门笔记
    思念是一种美丽的孤独
  • 原文地址:https://www.cnblogs.com/lindexi/p/12086337.html
Copyright © 2011-2022 走看看