Результат регулярки сохранить в переменную

zDvig

Client
Регистрация
22.09.2014
Сообщения
18
Благодарностей
5
Баллы
3
Всем привет. Возник вопрос, как обработать регулярное выражение в c# c сохранением в переменную, а не в список.

На данный момент пользуюсь кубиком, но так мне нужные все совпадения, то сохранить я могу только в список. Кубик не всегда корректно обрабатывает, через раз сохраняет в файл. Хочу с помощью си# получать текст из переменной, выполнить регулярное выражение, затем сохранить все значения в другую переменную.

Вот регулярка которая разбивает текст на количество символов: [\w\W]{0,{-Variable.count_symvol-}}[ ,.!?]+

Заранее спасибо за помощь :-)
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 764
Благодарностей
2 407
Баллы
113
Всем привет. Возник вопрос, как обработать регулярное выражение в c# c сохранением в переменную, а не в список.

На данный момент пользуюсь кубиком, но так мне нужные все совпадения, то сохранить я могу только в список. Кубик не всегда корректно обрабатывает, через раз сохраняет в файл. Хочу с помощью си# получать текст из переменной, выполнить регулярное выражение, затем сохранить все значения в другую переменную.

Вот регулярка которая разбивает текст на количество символов: [\w\W]{0,{-Variable.count_symvol-}}[ ,.!?]+

Заранее спасибо за помощь :-)
Как-то так примерно - берет первое совпадение либо пусто если ничего не найдено.
C#:
string regex = @"[\w\W]{0,"+project.Variables["count_symvol"].Value+@"}[ ,.!?]+";
string text = "Какой-то текст";
return Regex.Match(text, regex).Value;
Или вот взять все совпадения, разделитель новая строка.
Сохранить все совпадния:
List<string> list = new List<string>();
string regex = @"[\w\W]{0,"+project.Variables["count_symvol"].Value+@"}[ ,.!?]+";
string text = "Какой-то текст";
var re = new Regex(regex);
    re.Matches(text).Cast<Match>().ToList().ForEach(m=>list.Add(m.Value));
   
    return string.Join(Environment.NewLine, list);
109561
 
Последнее редактирование:
  • Спасибо
Реакции: zDvig

zDvig

Client
Регистрация
22.09.2014
Сообщения
18
Благодарностей
5
Баллы
3
Как-то так примерно - берет первое совпадение либо пусто если ничего не найдено.
C#:
string regex = @"[\w\W]{0,"+project.Variables["count_symvol"].Value+@"}[ ,.!?]+";
string text = "Какой-то текст";
return Regex.Match(text, regex).Value;
Или вот взять все совпадения, разделитель новая строка.
Сохранить все совпадния:
List<string> list = new List<string>();
string regex = @"[\w\W]{0,"+project.Variables["count_symvol"].Value+@"}[ ,.!?]+";
string text = "Какой-то текст";
var re = new Regex(regex);
    re.Matches(text).Cast<Match>().ToList().ForEach(m=>list.Add(m.Value));
   
    return string.Join(Environment.NewLine, list);
Спасибо за оперативный ответ. Всё замечательно работает!
 
  • Спасибо
Реакции: BAZAg

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)