Подскажите, как в Regex передать массив
Я попытался, но компилятор выдает ошибку
Regex regex = new Regex(keywords);
Как уже было сказано - создать объект класса Regex из массива Вам не удастся (не поддерживает его конструктор такую сигнатуру, это и очевидно!).
Если Ваша задача звучит так:
хочу, чтобы Regex находил все "слова" в тексте, которые есть в массиве
то Вам действительно необходимо сначала Ваш массив слов преобразовать в строку регулярного выражения:
static string GenRegexStr(string[] words){
var strBuilder = new StringBuilder();
foreach (string word in words)
{
strBuilder.AppendFormat("({0})|", word);
}
strBuilder.Length--; //убираем последний "|"
return strBuilder.ToString();
}
Дальше уже дело за малым:
var elements = new string[] { "text", "lorem" };
var regexStr = Program.GenRegexStr(elements);
var regexp = new Regex(regexStr);
var matches = regexp.Matches("lorem ipsum test text bla bla bla");
foreach(Match match in matches) {
Console.WriteLine(match.Value);
}
Результат:
lorem
text
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости