`
lindexi-gd
  • 浏览: 139538 次
社区版块
存档分类
最新评论

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);

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

代码:

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

博客同时发在:http://lindexi.oschina.io/lindexi/post/C-%E9%80%9A%E9%85%8D%E7%AC%A6%E8%BD%AC%E6%AD%A3%E5%88%99/

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    lindexi#lindexi.github.io#C# 通配符转正则1

    /// 获取通配符的正则/// 是否忽略大小写正则可以使用程序集方式,启动慢,但是运行快我的软

    C#通配符数据库查询实例

    本篇将深入探讨C#中如何利用通配符进行数据库查询,并提供实际的代码示例。 在SQL中,有两种主要的通配符用于模糊查询: 1. `%`:代表零个、一个或多个任意字符。 2. `_`:代表单个任意字符。 在C#中,我们通常...

    C#字符串与通配符匹配

    2. **通配符转正则表达式**: - 星号(*):在正则表达式中对应`.*`,`.`代表任意字符,`*`表示前面的字符可以重复零次或多次。 - 问号(?):在正则表达式中对应`.?`,`.`代表任意字符,`?`表示前面的字符可以重复...

    C#使用%通配符进行查询

    在这个主题中,我们将深入探讨如何使用%通配符进行查询,这对于熟悉SQL语法和C#中的数据库操作至关重要。%通配符在SQL中被广泛用于模糊匹配,它允许我们在查询中寻找不完全匹配的数据。 首先,%通配符有以下两种...

    C#利用[^]通配符进行查询年龄

    下面将详细解释[^]通配符的用法以及如何在C#中结合数据库应用。 首先,[^]通配符的基本概念是它用于排除指定范围或集合内的任何字符。在SQL的LIKE语句中,当你想匹配除了某些特定字符之外的所有字符时,[^]就派上...

    易语言文本实现匹配通配符

    本篇文章将详细探讨如何在易语言中实现文本匹配通配符的功能。 通配符是一种特殊的字符或字符串,用于表示一组可能的字符组合,常用于文件名搜索、正则表达式等场景。常见的通配符有星号(*)和问号(?)。星号代表零个...

    中文子网掩码和通配符掩码计算器

    通配符掩码(Wildcard Mask)则与子网掩码相反,用于定义网络安全策略,特别是访问控制列表(ACL)中。通配符掩码的每个0对应子网掩码中的1,每个1对应子网掩码中的0。例如,如果子网掩码是255.255.255.0,对应的...

    delphi通配符查找函数(单元)的实例

    网上只看到有通配符查找,返回boolean值的,为进行补充,单独写了一个通配符查找单元MatchFind,主要的为MatchFindStr(MainStr,SubStr)函数,返回符合条件的通配符的字符。 奇怪的是在winxp下,微软的查找中文使用...

    带通配符的字符串匹配算法

    带通配符的字符串匹配算法则是这个领域的延伸,它允许在模式字符串中包含特殊字符,如星号(*)或问号(?),以表示任意字符或单个任意字符。这种算法使得搜索更加灵活,可以适应更复杂的查询需求。 **通配符的含义** -...

    java 通配符使用示例

    无界通配符表示可以接受任何类型,而有界通配符则限制了可以接受的类型范围。 1. **无界通配符(?)** 无界通配符是最简单的形式,通常写作 "?". 它可以用在方法参数中,表示该参数可以接受任何类型的对象。例如,...

    c#操作word进行批量查找和替换

    - `Find`对象还有许多其他属性,如`MatchCase`(区分大小写),`MatchWholeWord`(匹配整个单词)和`MatchWildcards`(使用通配符匹配)。这些属性可以根据需求进行设置。 - 例如,如果要进行全词匹配且不区分大小...

    OmnipotentQuery_C#_

    例如,"WHERE column LIKE '%keyword%'"会返回所有在指定列中包含"keyword"的行,而"WHERE column LIKE 'k%w'"则会找到以"k"开头,后跟任意字符,再跟一个"w"的记录。 在"OmnipotentQuery_C#_"项目中,"复合式模糊...

    易语言匹配通配符API源码

    在易语言编程环境中,"匹配通配符API源码"是指使用特定的API函数来实现对字符串进行通配符匹配的功能。易语言是一种简洁、直观的中文编程语言,旨在降低编程难度,让更多人能参与到程序设计中。在这个场景中,"SanYe...

    c# java互相转换工具

    6. 泛型:C#和Java的泛型语法和用法有细微差别,转换时需要注意类型约束和通配符的区别。 7. 并发处理:C#的`Task`和`async/await`与Java的`Future`和`ExecutorService`在处理并发上有不同的方式。转换时要理解各自...

    易语言匹配通配符API

    本篇文章将详细探讨“易语言匹配通配符API”及其在实际编程中的应用。 通配符是一种特殊的字符,常用于文件名或路径中,以代表一系列可能的字符组合。例如,“*”代表零个或多个任意字符,而“?”则代表单个任意...

    易语言寻找字节集通配符

    而通配符则是一种特殊字符,如星号(*)和问号(?),用于在字符串搜索中代表零个、一个或多个任意字符。在易语言中,"寻找字节集通配符"这个功能允许开发者在字节集中查找符合特定通配符模式的数据。 首先,我们需要...

    C#文件搜索_C#_文件搜索_

    可以使用通配符如`"*.*"`来搜索特定类型的文件。`SearchOption`枚举值可以设置为`AllDirectories`,以便递归搜索所有子目录。 2. **FileInfo**: 当你需要处理单个文件时,可以使用`FileInfo`对象。它可以提供文件的...

    .net C# Cron表达式解析.

    在.NET开发环境中,C#是一种常用的编程语言,而Cron表达式则是一种强大的定时任务调度工具,常用于Linux系统中的计划任务。然而,在C#中,我们也可以通过库来解析和使用Cron表达式,这使得.NET开发者也能利用Cron的...

    SQL 通配符DOC版

    ALN]%'` 则会匹配所有不以 "A"、"L" 或 "N" 开头的字符串,如 "Beijing"。 在实际应用中,这些通配符结合 LIKE 运算符可以构建出强大的查询条件,帮助用户在大型数据库中快速定位到所需信息。比如,在一个包含大量...

Global site tag (gtag.js) - Google Analytics