Исключение из строки скобок в Regex
Спличу строку таким образом:
string[] Funct = Regex.Split(Function.Task, @"-?([\W])");
Почему в массиве появляются "", и остаются скобки, если сплитить такое выражение: 5*6-(2+х)
P.S Массив должен получиться такого вида: "5", "*", "6", "-", "2", "+", "x". Естественно, строковый.
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Скобки остаются, потому что вы их "захватили" с помощью захватывающей подмаски.
Вы можете использовать
var results = Regex.Matches(text, @"[^()\w]+|\w+")
.Cast<Match>()
.Select(x => x.Value)
.ToList();
Подробности
[^()\w]+- один и более символов, отличных от буквенно-цифровых символов или символов нижнего подчёркивания, а также(и)|- или\w+- один и более буквенно-цифровых символов или символов нижнего подчёркивания
