スポンサーリンク
スポンサーリンク

完全一致、前方一致、後方一致、部分一致、それぞれに対応したC#メソッド

C#

完全一致、前方一致、後方一致、部分一致、それぞれに対応した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;
}

 

コメント

タイトルとURLをコピーしました