Как в C# Проверить наличие нескольких элементов в строке
Подскажите, пожалуйста, как можно проверить наличие нескольких слов из списка List, в строке string? Сейчас я использую данный метод, который делает проверку для каждого элемента, возможно ли сделать это за один раз?
List<string> models = new List<string>();
foreach (object name in checkedListBox2.CheckedItems)
{
models.Add(name.ToString());
}
models.ForEach(x =>
{
if (content.Contains(x))
{
SetTextSafe(x + " на " + page + " странице" + "\r\n");
}
});
Ответы (2 шт):
Автор решения: OXYGEN
→ Ссылка
Вот регулярка ее попробуйте
проверяет наличие двух слов в одной строке слова на и странице
string test = "было на но другой странице";
Regex check = new Regex("^(?=.*\\bна\\b)(?=.*\\bстранице\\b).*$");
if (check.IsMatch(test))
{
//найдено
}
else
{
//не найдено
}
Автор решения: Sergey
→ Ссылка
public void Check(string input, IEnumerable<string> words)
{
var builder = new StringBuilder("^");
foreach (var word in words)
builder.Append($"(?=.*\\b{word}\\b)");
builder.Append(".*$");
var check = new Regex(builder.ToString());
if (check.IsMatch(input))
{
//найдено
}
else
{
//не найдено
}
}