Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2017, 18:39   #1
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию Повторяющаяся конструкция в регулярном выражении

Всем привет.

Нужно из текста выдернуть строку, которая начинается с ключевого слова ( на пример, "MyString" ) и сохранить все, что идёт после ключевого слова до точки запятой.

формат строки достаточно разнообразен:

Цитата:
MyString param1, param2 ,
param3, param4;
Цитата:
MyString
param1, param2 ,
param3, param_4;
Цитата:
MyString param1, param2 , param3, param_4;
Т.е. хоть основным разделителем и является запятая, но так же между параметрами могут быть и пробелы и переносы строк.

Код:
MyString[\W+]{0,}([0-9A-Za-z_]{0,})[,\s]{0,};
Но получается, что нахожу только строку, в которой только 1 параметр. Если их больше, то считать все параметры не удается.
-Jack- вне форума Ответить с цитированием
Старый 11.09.2017, 19:10   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а если так?
Код:
MyString(.*);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2017, 19:29   #3
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а если так?
Код:
MyString(.*);
Таким образом выцепляется вся строка после "MyString" со всеми пробелами и запятыми и при условии если же в конце этой строки находится точка запятая.

А мне нужно выцепить только параметры, которые могут быть записаны в несколько строк без лишних символов
-Jack- вне форума Ответить с цитированием
Старый 12.09.2017, 09:27   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от -Jack- Посмотреть сообщение
Таким образом выцепляется вся строка после "MyString" со всеми пробелами и запятыми
именно так. потом разбить эту строку на параметры вообще никаких проблем.


Цитата:
Сообщение от -Jack- Посмотреть сообщение
и при условии если же в конце этой строки находится точка запятая.
что значит - "при условии"?! Это же условия задания:

Цитата:
Сообщение от -Jack- Посмотреть сообщение
Нужно из текста выдернуть строку, которая начинается с ключевого слова ( на пример, "MyString" ) и сохранить все, что идёт после ключевого слова до точки запятой.
нет ключевого слова или нет точки с запятой - значит, это НЕ ПАРАМЕТРЫ, согласно вашим же словам.
Или я что-то не знаю?


Впрочем, я предложил регулярку, раз не подходит, значит, не судьба, и Вам нужно искать другой вариант.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основные управляющие конструкции языка Delphi. Конструкция присваивания. Условная конструкция. Конструкция множественного выбора. nadyaH Помощь студентам 3 23.11.2013 22:19
Проверьте, что неправильного в регулярном выражении. vlados0112 C# (си шарп) 0 21.03.2012 12:31
Повторяющаяся процедура MORPEH Помощь студентам 6 03.03.2012 15:53
Повторяющаяся ошибка запроса ZHDN БД в Delphi 4 28.09.2011 06:14
Повторяющаяся инфа Семенов Microsoft Office Word 4 05.12.2010 16:32