完全一致、前方一致、後方一致、部分一致、それぞれに対応したC#メソッドを作りました。
ワイルドカードには % を使えます。
src文字列に、RegList文字列リストのいずれかが見つかったら、trueを返して終了します。
/// <summary>
/// 特定の文字列が含まれているかチェックする。
/// '%'が最初にある場合は後方一致検索、'%'が最後にある場合は前方一致検索。
/// '%'が最初と最後にある場合は部分一致検索。
/// </summary>
/// <param name="src">チェック元の文字列</param>
/// <param name="Reg">チェックする特定文字列</param>
/// <returns>true=特定の文字列が有り false=特定の文字列が無し</returns>
public static bool StrMatch(string src, List<string> RegList)
{
foreach (string RegStr in RegList)
{
if (RegStr.StartsWith("%") && RegStr.EndsWith("%"))
{
// 部分一致
if (src.Contains((RegStr.Remove(0, 1)).Remove(RegStr.Length - 2)))
return true;
}
else if (RegStr.StartsWith("%"))
{
// 後方一致
if (src.EndsWith(RegStr.Remove(0, 1)))
return true;
}
else if (RegStr.EndsWith("%"))
{
// 前方一致
if (src.StartsWith(RegStr.Remove(RegStr.Length - 1)))
return true;
}
else
{
// 完全一致
if (src == RegStr)
return true;
}
}
return false;
}
最近のコメント