C# 通配符转正则

2024-01-19 19:40
文章标签 通配符 转正

本文主要是介绍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 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

这篇关于C# 通配符转正则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/623471

相关文章

Linus常用的快捷键与shell常用通配符

一,常用快捷键: Ctrl+c这一个快捷键在Linux下的作用是强行终止当前程序(但不退出终端),其实在其他一些软件,比如MATLAB中,Ctrl+c也有终止程序的作用,如果你的程序进入了死循环,就可以用Ctrl+c来终止程序。 除了最普遍的Ctrl+c之外,还有以下快捷键:   按键  作用Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂定当前程序,暂停后

通配符掩码

1. 基本概念 在计算机网络中,通配符掩码(Wildcard Mask)通常与子网掩码一起使用,用于在配置网络设备(如路由器或交换机)时指定要匹配的IP地址范围。通配符掩码实际上是子网掩码的反码(bitwise NOT)。 子网掩码用于指定IP地址中的哪些位表示网络部分,哪些位表示主机部分。通配符掩码则用于指定在路由或访问控制列表(ACL)中哪些位必须匹配,哪些位可以忽略。 2. 通配符掩码

泛型第三课,自定义泛型、无多态、通配符、无泛型数组

泛型没有多态 package com.pkushutong.genericity4;/*** 多态的两种形式* 注:泛型没有多态* @author dell**/public class Test01 {public static void main(String[] args) {Fruit f = new Fruit();test(new Apple());}//形参使用多态publi

ES通配符查询慢优化

使用ES查询遇到的坑: 当为空字符串查询** 时速度超慢 原始查询条件: 生成的查询语句: 查询语句 http://11.11.11.11:9100/ data_aa-2018.08/category_goods_1_day/_search  POST {"from" : 0,"size" : 10,"query" : {"bool" : {"must" : [ {"que

css 类选择器 id选择器 html选择器 通配符选择器 父子选择器

1、css使用的基本语法: 选择器 { 属性1:属性值; 属性2:属性值; 属性3:属性值;          .          .          . } 2、Css使用的必要性: (1)、统一网页不同个体的风格 (2)、可以使用滤镜 3、Css中常用的4种选择器: (1)、类选择器,又叫class选择器:          类选择器格式: . 类选择器{

struts通配符配置

通配符配置 <!--method属性值为1表示匹配一个*。如用户的请求是book_add.action。则name的属性值是book_add,method的属性值是add  --><action name="book_*" class="action.AddBook" method="{1}"><result name="success">/success.jsp</result><

LintCode 通配符匹配

参考资料 判断两个可能包含通配符“?”和“*”的字符串是否匹配。匹配规则如下: ‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串(包括空字符串)。 两个串完全匹配才算匹配成功。 函数接口如下: bool isMatch(const char *s, const char *p) 一些例子: isMatch(“aa”,”a”) → false isMatch(“aa”,”

OV通配符证书具体申请流程

OV通配符HTTPS证书,也称为OV泛域名证书,是一种经过严格身份验证的证书类型,能够同时保护主域名以及主域名下所有二级子域名,为多个网站提供信息加密和身份认证服务。其申请过程相对于DV类型的证书会多几个步骤: 一、选择证书提供商 首先,从受信任的SSL证书颁发机构(CA)中选择一家,这些机构能够提供高质量的SSL证书,并确保证书的安全性和可信度。 打开JoySSL官方网站注册一个账号。在注册

Java泛型中通配符的使用

学习目标 掌握通配符“?” 的使用 掌握受限泛型的设置 掌握泛型与子类继承的限制 匹配任意类型的通配符 在开发中对象的引用传递是最常见的,但是如果在泛型类的操作中,在进行传递的时候泛型类型必须匹配才可以传递。否则是无法传递的。 class Info<T>{private T var ; // 定义泛型变量public void setVar(T

《SQL必知必会——第6、7、8课:用通配符进行过滤、创建计算字段、使用函数处理数据》

第6课 用通配符进行过滤        什么是通配符呢?本书没有具体说,相信大家都知道什么是通配符,在接触计算机过程中,通配符的概念应该早早建立了起来。我还是查了,百度百科上这么解释:“通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符