Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 15.04.2019, 23:56   #1
mikhail2019
Новичок
 
Регистрация: 13.04.2019
Сообщений: 3
Репутация: 10
По умолчанию Пока не кончатся совпадения по регулярным выражениям

Доброго времени суток! Имеется массив с регулярными выражениями, как сделать так, чтобы пока есть соответствие с регулярным выражением из массива, вырезаем подстроку соответствующую этому регулярному выражению и идем дальше.
Для большего понимания прилагаю код:
Код:

string[] pattern = { @"([x])(\^)(\d+)", @"(\d+)([/])([x])", @"(\d+)(\^)([x])", @"([e])(\^)([x])", @"(\d+)([/])([(])sin(\^)2([(])([x])([)])([)])", @"(\d+)([/])([(])cos(\^)2([(])([x])([)])([)])", @"(\d+)([/])([(])sqrt([(])(\d+)([-])([x])(\^)2([)])([)])", @"(\d+)([/])([(])(\d+)([+])([x])(\^)2([)])", @"(\d+)([/])([(])(\d+)([-])([x])(\^)2([)])", @"(\d+)([/])([(])sqrt([(])([x])(\^)2([-+])(\d+)([)])([)])", @"sin([(])([x])([)])", @"cos([(])([x])([)])", @"([0])", @"([x])", @"(\d+)" };
                List<string> rezv = new List<string>();
                //я проверяю так, беру каждое регулярное выражение, и, если есть с ним совпадение, то запоминаю его, и удаляю из строки эту подстроку которая соответствует регулярному выражению
                for (int j = 0; j < pattern.Length; j++)
                {
                    Regex reg = new Regex(pattern[j]);
                    Match match = reg.Match(integral);
                    if (Regex.IsMatch(integral, pattern[j], RegexOptions.IgnoreCase) == true)
                    {
                        rezv.Add(match.Value);
                        integral = Regex.Replace(integral, pattern[j], "");
                    }
                    match = match.NextMatch();
                }

не понимаю как выполнять этот цикл for до тех пор пока не закончатся совпадения
mikhail2019 вне форума   Ответить с цитированием
Старый 16.04.2019, 00:07   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,057
Репутация: 5491
По умолчанию

так?

Код:

             for (int j = 0; j < pattern.Length; j++)
             {
                    Regex reg = new Regex(pattern[j]);

                    foreach (Match ItemMatch in reg.Matches(integral))
                    {
                             integral = integral.Replace(ItemMatch.Value, "");
                    }
                }

Serge_Bliznykov вне форума   Ответить с цитированием
Старый 16.04.2019, 01:27   #3
mikhail2019
Новичок
 
Регистрация: 13.04.2019
Сообщений: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
так?

Код:

             for (int j = 0; j < pattern.Length; j++)
             {
                    Regex reg = new Regex(pattern[j]);

                    foreach (Match ItemMatch in reg.Matches(integral))
                    {
                             integral = integral.Replace(ItemMatch.Value, "");
                    }
                }

ДА!!! огромное спасибо тебе Модератор!!!
mikhail2019 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по регулярным выражениям timbi C# (си шарп) 4 12.05.2013 18:57
Вопрос по регуярным выражениям PHP three_cats PHP 1 04.04.2013 15:51
Вопрос по регулярным выражениям fantom_ZET PHP 10 11.12.2010 00:26
stringgrid,сравнение двух столбцов на совпадения и не совпадения betirsolt БД в Delphi 7 19.01.2010 16:09
Проблема с регулярным выражением ssdm PHP 3 12.01.2010 19:26


06:29.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru