完全一致、前方一致、後方一致、部分一致、それぞれに対応したC#メソッドを作りました。
ワイルドカードには % を使えます。
src文字列に、RegList文字列リストのいずれかが見つかったら、trueを返して終了します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
/// <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; } |
コメント