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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2014, 18:44   #1
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
Вопрос Помогите пожалуйста составить шаблон для регулярки TRegExpr

Помогите пожалуйста составить шаблон для регулярки TRegExpr

Имеем кусок текста:
Код:
<odin>
// текст который надо спарсить
</odin>
<odin>
// текст который надо спарсить
</odin>
<odin>
// текст который надо спарсить
</odin>
<odin>
// текст который надо спарсить
</odin>
<odin>
// текст который надо спарсить
</odin>
// тут много текста включая html теги
<dva>
// текст который надо спарсить
</dva>
<dva>
// текст который надо спарсить
</dva>
<dva>
// текст который надо спарсить
</dva>
<dva>
// текст который надо спарсить
</dva>
<dva>
// текст который надо спарсить
</dva>
все это дело надо парсить сразу и с одного запроса, но спарсить надо так чтобы в результате выдавало:
Код:
<odin>текст</odin><dva>текст</dva>
<odin>текст</odin><dva>текст</dva>
<odin>текст</odin><dva>текст</dva>
а не так
Код:
<odin>текст</odin>
<odin>текст</odin>
<odin>текст</odin>
<odin>текст</odin>
<odin>текст</odin>
<dva>текст</dva>
<dva>текст</dva>
<dva>текст</dva>
<dva>текст</dva>
<dva>текст</dva>
FleXik вне форума Ответить с цитированием
Старый 08.07.2014, 20:45   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Настойчивый ты парень. Упорно идешь к светлому коммунистическому будущему...
Код:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses   regularexpressions,
  System.SysUtils;

const
  s='<odin>  // текст который надо спарсить  </odin>  
<odin>  // текст который надо спарсить  </odin>   
 // тут много текста включая html теги  
<dva>  // текст который надо спарсить  </dva> 
 <dva>  // текст который надо спарсить  </dva>';

var ra,rb:TRegEx; a,b:boolean;i:integer; ma,mb:TMatchCollection;  st:string;
begin
 ra:=TRegEx.Create('(<odin>)(.+?)(</odin>)');
 rb:=TRegEx.Create('(<dva>)(.+?)(</dva>)');
 ma:=ra.Matches(s);
 mb:=rb.Matches(s);
 i:=0;
 while (i<ma.Count)and(i<mb.Count) do begin
   st:='';
   if i<ma.Count then st:=st+ma[i].Value;
   if i<mb.Count then st:=st+mb[i].Value;
   writeln(st);
   inc(i);
 end;
 readln;
end.
Идея ясна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2014, 20:49   #3
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
Идея ясна?
да, спасибо большое за код, весы кликнул.
FleXik вне форума Ответить с цитированием
Старый 08.07.2014, 21:06   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста.
P.S. Ума не приложу че ты за регулярку уцепился?..
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2014, 02:23   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ума не приложу че ты за регулярку уцепился?..
А чё все тут уцепились за Дельфи?
Думать не надо, понимать не надо, разбираться ни в чём не надо и т.д. Главное найти "компонент" готовый, который сам всё сделает и в добавок кофе в постель принесёт.
northener на форуме Ответить с цитированием
Старый 09.07.2014, 08:00   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А чё все тут уцепились за Дельфи?
Да. Тоже верно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста составить блок схемы для 3 задач=) Андрей123321 Паскаль, Turbo Pascal, PascalABC.NET 0 27.11.2013 23:50
Помогите пожалуйста решить две задачи по паскалю и составить и составить блок схему! ...Оленька... Паскаль, Turbo Pascal, PascalABC.NET 2 20.01.2009 09:37