Предположим, что у меня была строка «1 AND 2 AND 3 OR 4», и вы хотите создать массив строк, который содержит все подстроки «AND» или «OR», для того, чтобы , найденные внутри строки.C#: поиск экземпляров строки в строке
Таким образом, указанная выше строка вернет массив строк из {"AND", "AND", "OR"}.
Что было бы разумным способом написать это?
EDIT: Использование C# 2.0+,
string rule = "1 AND 2 AND 3 OR 4";
string pattern = "(AND|OR)";
string[] conditions = Regex.Split(rule, pattern);
дает мне { "1", "И", "2", "И", "3", "ИЛИ", "4"} , что не совсем то, что мне нужно. Как я могу уменьшить это только для AND и OR?
Я вижу, что вы пытаетесь сделать, но я не думаю, что подход «Сплит» наиболее подходит для того, что вы хотите. См. Раздел «Разделение» - это разделение ввода на AND и OR, что приводит к тому, что числа (и только AND/ORs coz в скобках) - это не то, что вы хотите. Вы хотите использовать AND и OR. Я думаю, что созданный шаблон регулярного выражения может возвращать несколько совпадений, таким образом захватывая только И и ИЛИ. –
Не могли бы вы объяснить цель, если это требование? Это может помочь в разработке более подходящего регулярного выражения. –