セグメント フィルターを単純な単語に変更します (スラッシュなし、フィルター リストに追加する前にトリミング)。
var _filterList = new List<string>()
{
"forum", "phpld", "php"
};
また、正規表現を使用して URL 内のセグメントを検索しました (大文字と小文字は無視し、URL の末尾にあるオプションのスラッシュ)
bool IsSegmentInUrl(string url, string segment)
{
string pattern = String.Format(".*/{0}(/|$)", segment);
return Regex.IsMatch(url, pattern, RegexOptions.IgnoreCase);
}
使用法:
if (_filterList.Any(filter => IsSegmentInUrl(PAGEURL, filter))
{
_parseResultsFinal.Add(PAGEURL);
filteredByURL++;
}
より読みやすい解決策 - 拡張メソッドを作成する
public static bool ContainsSegment(this string url, string segment)
{
string pattern = String.Format("http://.*/{0}(/|$)", segment);
return Regex.IsMatch(url, pattern, RegexOptions.IgnoreCase);
}
コードは非常に自己記述的に見えます。
if (_filterList.Any(filter => PAGEURL.ContainsSegment(filter))
{
_parseResultsFinal.Add(PAGEURL);
filteredByURL++;
}