ワイルドカード文字列については、次のコードを使用することができます肯定的です
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
:この記事では、元のテキストを読んでください、頻繁に更新されますhttps://blog.lindexi.com/post/C-%E9%80%9A%E9%85%8D%E7%AC%A6%E8%BD%AC%E6% %A3%E5%AD%の99.html 88、知識の古いエラー、より良い読書体験を誤解ないようにするためです。
あなたは私の最新のブログを読むことを続けたい場合は、をクリックしてくださいRSSフィード、使用することをお勧めしますRSSストーカーをブログ、またはを購読する私のホームページCSDNの懸念をご覧ください。
この作品は、ある非営利- -同一条件許諾4.0の国際ライセンス契約クリエイティブ・コモンズのライセンスのために。転載、使用、再投稿が、(リンクを含む:リンデ西が署名した文書保管してくださいへようこそhttps://blog.lindexi.comは)、紙のライセンス変更に基づいて、同じ作業を公開するようにしてください、商業目的のために使用してはなりません。ご質問があれば、してください私に連絡。
以下は時間を宣伝しています
推奨国民の関心Edi.Wang号