可以使用下面代码把通配符转正则字符串
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);
我的软件就需要重复使用,于是就使用这个。
代码:
博客同时发在:/
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
本文发布于:2024-01-28 12:39:14,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064167567479.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |