Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
1

Парсинг регулярными выражениями

21.11.2015, 12:44. Показов 2248. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Помогите составить регулярное выражение, для "вытаскивания" тем писем с одного из почтовых серверов.
Тема письма лежит между тегами <td bgcolor="#EDEDED" align="left">...</td> или между <td bgcolor="#FFFFFF" align="left"></td>, если это письмо еще не прочитано, то добавляются соответствующие теги жирного текста: <td bgcolor="#FFFFFF" align="left"><b>Александра Федорова</b></td>

Вот текст HTML:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<table width="100%" cellpadding="1" cellspacing="0" align="center" border="0" bgcolor="#DCDCDC">     <tbody><tr><td>       <table width="100%" cellpadding="1" cellspacing="0" align="center" border="0" bgcolor="#FFE6C8"><tbody><tr><td></td></tr><tr bgcolor="#FFE6C8" align="center">
<td width="1%">&nbsp;</td>
<td align="left" width="25%">
<b>От</b> <a href="/sq/src/right_main.php?newsort=2&amp;startMessage=1&amp;mailbox=INBOX"><img src="https://www.cyberforum.ru/images/sort_none.png" border="0" width="12" height="10" alt="sort"></a></td>
<td align="left" width="5%" nowrap="">
<b>Дата</b> <a href="/sq/src/right_main.php?newsort=0&amp;startMessage=1&amp;mailbox=INBOX"><img src="https://www.cyberforum.ru/images/sort_none.png" border="0" width="12" height="10" alt="sort"></a></td>
<td width="1%">&nbsp;</td>
<td align="left" width="68%">
<b>Тема</b> <a href="/sq/src/right_main.php?newsort=4&amp;startMessage=1&amp;mailbox=INBOX"><img src="https://www.cyberforum.ru/images/sort_none.png" border="0" width="12" height="10" alt="sort"></a></td>
</tr>
<tr valign="top">
 
<td bgcolor="#EDEDED" align="center"><input type="checkbox" name="msg[0]" value="13357"></td>
<td bgcolor="#EDEDED" align="left"><b>Новости портала «КП»</b></td>
<td bgcolor="#EDEDED" align="center" nowrap=""><b>14:06</b></td>
<td bgcolor="#EDEDED" align="right" nowrap=""><b><small><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/attach.gif" border="0" height="10" width="6" alt="This message is Mulitpart" title="This message is Mulitpart"><img src="https://www.cyberforum.ru/plugins/msg_flags/msg_new.gif" border="0" alt="This message is New" title="This message is New" height="12" width="18"></small></b>&nbsp;</td>
<td bgcolor="#EDEDED" align="left"><b><a href="read_body.php?mailbox=INBOX&amp;passed_id=13357&amp;startMessage=1" title="Тайны игровых клубов, которые надо знать / m1116-306477">Тайны игровых клубов, которые надо знать / m1116-3...</a></b></td>
</tr>
<tr><td colspan="5" bgcolor="#DCDCDC" height="1"></td></tr>
<tr valign="top">
 
<td bgcolor="#FFFFFF" align="center"><input type="checkbox" name="msg[1]" value="13356"></td>
<td bgcolor="#FFFFFF" align="left"><b>Александра Федорова</b></td>
<td bgcolor="#FFFFFF" align="center" nowrap=""><b>11:48</b></td>
<td bgcolor="#FFFFFF" align="right" nowrap=""><b><small><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/attach.gif" border="0" height="10" width="6" alt="This message is Mulitpart" title="This message is Mulitpart"><img src="https://www.cyberforum.ru/plugins/msg_flags/msg_new.gif" border="0" alt="This message is New" title="This message is New" height="12" width="18"></small></b>&nbsp;</td>
<td bgcolor="#FFFFFF" align="left"><b><a href="read_body.php?mailbox=INBOX&amp;passed_id=13356&amp;startMessage=1" title="Она такая же как Вы! Волнующий фильм о пути Женщины в Инфобизнес (14 мин). Смотрите с поп-корном >>>">Она такая же как Вы! Волнующий фильм о пути Женщины в Ин...</a></b></td>
</tr>
<tr><td colspan="5" bgcolor="#DCDCDC" height="1"></td></tr>
<tr valign="top">
 
<td bgcolor="#EDEDED" align="center"><input type="checkbox" name="msg[2]" value="13355"></td>
<td bgcolor="#EDEDED" align="left"><b>Дроздов Михаил</b></td>
<td bgcolor="#EDEDED" align="center" nowrap=""><b>12:25</b></td>
<td bgcolor="#EDEDED" align="right" nowrap=""><b><small><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/msg_new.gif" border="0" alt="This message is New" title="This message is New" height="12" width="18"></small></b>&nbsp;</td>
<td bgcolor="#EDEDED" align="left"><b><a href="read_body.php?mailbox=INBOX&amp;passed_id=13355&amp;startMessage=1">По поводу Ваших товаров</a></b></td>
</tr>
<tr><td colspan="5" bgcolor="#DCDCDC" height="1"></td></tr>
<tr valign="top">
 
<td bgcolor="#FFFFFF" align="center"><input type="checkbox" name="msg[3]" value="13354"></td>
<td bgcolor="#FFFFFF" align="left"><b>Club Mnogo.ru</b></td>
<td bgcolor="#FFFFFF" align="center" nowrap=""><b>3:07</b></td>
<td bgcolor="#FFFFFF" align="right" nowrap=""><b><small><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/attach.gif" border="0" height="10" width="6" alt="This message is Mulitpart" title="This message is Mulitpart"><img src="https://www.cyberforum.ru/plugins/msg_flags/msg_new.gif" border="0" alt="This message is New" title="This message is New" height="12" width="18"></small></b>&nbsp;</td>
<td bgcolor="#FFFFFF" align="left"><b><a href="read_body.php?mailbox=INBOX&amp;passed_id=13354&amp;startMessage=1">Николай, 48 часов: раздаем призы каждому</a></b></td>
</tr>
<tr><td colspan="5" bgcolor="#DCDCDC" height="1"></td></tr>
<tr valign="top">
 
<td bgcolor="#EDEDED" align="center"><input type="checkbox" name="msg[4]" value="13353"></td>
<td bgcolor="#EDEDED" align="left"><b>Web-Proriv</b></td>
<td bgcolor="#EDEDED" align="center" nowrap=""><b>Срд, 12:44</b></td>
<td bgcolor="#EDEDED" align="right" nowrap=""><b><small><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/attach.gif" border="0" height="10" width="6" alt="This message is Mulitpart" title="This message is Mulitpart"><img src="https://www.cyberforum.ru/plugins/msg_flags/msg_new.gif" border="0" alt="This message is New" title="This message is New" height="12" width="18"></small></b>&nbsp;</td>
<td bgcolor="#EDEDED" align="left"><b><a href="read_body.php?mailbox=INBOX&amp;passed_id=13353&amp;startMessage=1" title="Внимание! Мы научим вас строить сайты за 5 дней или сделаем его за Вас">Внимание! Мы научим вас строить сайты за 5 дней или сдел...</a></b></td>
</tr>
<tr><td colspan="5" bgcolor="#DCDCDC" height="1"></td></tr>
<tr valign="top">
 
<td bgcolor="#FFFFFF" align="center"><input type="checkbox" name="msg[5]" value="13352"></td>
<td bgcolor="#FFFFFF" align="left"><b>Василий Гаранько</b></td>
<td bgcolor="#FFFFFF" align="center" nowrap=""><b>Птн, 22:58</b></td>
<td bgcolor="#FFFFFF" align="right" nowrap=""><b><small><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/attach.gif" border="0" height="10" width="6" alt="This message is Mulitpart" title="This message is Mulitpart"><img src="https://www.cyberforum.ru/plugins/msg_flags/msg_new.gif" border="0" alt="This message is New" title="This message is New" height="12" width="18"></small></b>&nbsp;</td>
<td bgcolor="#FFFFFF" align="left"><b><a href="read_body.php?mailbox=INBOX&amp;passed_id=13352&amp;startMessage=1">7 500 рублей ежедневно на полном автомате</a></b></td>
</tr>
<tr><td colspan="5" bgcolor="#DCDCDC" height="1"></td></tr>
<tr valign="top">
 
<td bgcolor="#EDEDED" align="center"><input type="checkbox" name="msg[6]" value="13351"></td>
<td bgcolor="#EDEDED" align="left"><b>the Best</b></td>
<td bgcolor="#EDEDED" align="center" nowrap=""><b>Птн, 22:45</b></td>
<td bgcolor="#EDEDED" align="right" nowrap=""><b><small><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/attach.gif" border="0" height="10" width="6" alt="This message is Mulitpart" title="This message is Mulitpart"><img src="https://www.cyberforum.ru/plugins/msg_flags/msg_new.gif" border="0" alt="This message is New" title="This message is New" height="12" width="18"></small></b>&nbsp;</td>
<td bgcolor="#EDEDED" align="left"><b><a href="read_body.php?mailbox=INBOX&amp;passed_id=13351&amp;startMessage=1" title="Браслет PANDORA + Серьги в подарок! Самый желанный подарок для девушки!">Браслет PANDORA + Серьги в подарок! Самый желанный...</a></b></td>
</tr>
<tr><td colspan="5" bgcolor="#DCDCDC" height="1"></td></tr>
<tr valign="top">
 
<td bgcolor="#FFFFFF" align="center"><input type="checkbox" name="msg[7]" value="13350"></td>
<td bgcolor="#FFFFFF" align="left">Василий Гаранько</td>
<td bgcolor="#FFFFFF" align="center" nowrap=""><b>Птн, 20:43</b></td>
<td bgcolor="#FFFFFF" align="right" nowrap=""><b><small><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/attach.gif" border="0" height="10" width="6" alt="This message is Mulitpart" title="This message is Mulitpart"><img src="https://www.cyberforum.ru/plugins/msg_flags/msg_new.gif" border="0" alt="This message is New" title="This message is New" height="12" width="18"></small></b>&nbsp;</td>
<td bgcolor="#FFFFFF" align="left"><b><a href="read_body.php?mailbox=INBOX&amp;passed_id=13350&amp;startMessage=1">Получай 1 600 руб слушая музыку всего 1 час в день</a></b></td>
</tr>
<tr><td colspan="5" bgcolor="#DCDCDC" height="1"></td></tr>
<tr valign="top">
 
<td bgcolor="#EDEDED" align="center"><input type="checkbox" name="msg[8]" value="13349"></td>
<td bgcolor="#EDEDED" align="left">Илона</td>
<td bgcolor="#EDEDED" align="center" nowrap=""><b>Птн, 16:48</b></td>
<td bgcolor="#EDEDED" align="right" nowrap=""><b><small><img src="https://www.cyberforum.ru/plugins/msg_flags/transparent.gif" border="0" height="10" width="6"><img src="https://www.cyberforum.ru/plugins/msg_flags/attach.gif" border="0" height="10" width="6" alt="This message is Mulitpart" title="This message is Mulitpart"><img src="https://www.cyberforum.ru/plugins/msg_flags/msg_new.gif" border="0" alt="This message is New" title="This message is New" height="12" width="18"></small></b>&nbsp;</td>
<td bgcolor="#EDEDED" align="left"><b><a href="read_body.php?mailbox=INBOX&amp;passed_id=13349&amp;startMessage=1" title="Он получает 3-4 заявки в день из Инстаграмма. Хочешь также?">Он получает 3-4 заявки в день из Инстаграмма. Хоче...</a></b></td>
</tr>
<tr><td colspan="5" bgcolor="#DCDCDC" height="1"></td></tr>
<tr valign="top">
 
</tbody></table></td></tr></tbody></table>


Это моя несчастная попытка
Delphi
1
2
3
4
5
6
7
8
9
10
11
        RegExpr := TRegExpr.Create;
        RegExpr.Expression := ('<td bgcolor="#(FFFFFF|EDEDED)" align="left"><b>(.*?)</b>');
 
        if RegExpr.Exec(HTMLText) then
          begin
            CountMails := 0;
            repeat
              CountMails := CountMails +1;
              mmoLetters.Lines.Add(IntToStr(CountMails) + ') ' + RegExpr.Match[1]);
            until not RegExpr.ExecNext;
          end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2015, 12:44
Ответы с готовыми решениями:

Работа с регулярными выражениями
Всем привет! У меня огромный код, который я хочу раскодировать регулярными выражениями. Подскажите...

Проблема с "регулярными выражениями"
Привет всем, возник вопрос, как организовать регулярное выражение такого типа: &lt;span...

Парсинг регулярными выражениями
Здравствуйте, суть вопроса такова: Есть ответ от сервера в виде ...

Парсинг регулярными выражениями
Здравствуйте, не могу написать программу, у меня вот такая ошибка выходит:Форматы URI не...

28
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
13.12.2015, 08:02  [ТС] 21
Author24 — интернет-сервис помощи студентам
Нет идей?
0
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
14.12.2015, 16:46  [ТС] 22
volvo, можешь глянуть это безобразие с использованием стандартных компонент FireMonkey?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
14.12.2015, 20:22 23
Глянул. Непонятно. Так, как у тебя написано - не работает. Да и фиг с ним. Сделай 2 поиска:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  HeadMatches, MsgMatches: TMatchCollection;
// ...
  HeadMatches := TRegEx.Matches(HTMLText, 'class="date">(.*?)<.*?class="id">(.*?)<', [roIgnoreCase, roMultiLine]);
  MsgMatches := TRegEx.Matches(HTMLText, 'class="text">(.*?)<\/div>', [roIgnoreCase, roMultiLine]);
  if HeadMatches.Count = MsgMatches.Count then
    for i := 0 to HeadMatches.Count - 1 do
    begin
      mmoNew.BeginUpdate;
      mmoNew.Lines.Add(HeadMatches.Item[i].Groups[1].Value);
      mmoNew.Lines.Add(HeadMatches.Item[i].Groups[2].Value);
      mmoNew.Lines.Add(MsgMatches.Item[i].Groups[1].Value);
      mmoNew.EndUpdate;
    end
  else
    ShowMessage('Что-то пошло не так!!!');
Вот поэтому я и не перехожу на TRegEx, а остаюсь пока на TRegExpr
1
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
14.12.2015, 20:36  [ТС] 24
Огромное спасибо! Я уже тоже к этому склонялся, но хотел как-то одной регуляркой сделать
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
14.12.2015, 22:38 25
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Одной - так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
var m : Match;
// ...
  for m in TRegEx.Matches(HTMLText,
    '<span class="date">(.*?)<.*?class="id">(.*?)<\/a>\s+<\/div>\s+<div class="text">(.*?)<\/div',
    [roIgnoreCase]) do
  begin
    mmoNew.BeginUpdate;
    mmoNew.Lines.Add(m.Groups[1].Value);
    mmoNew.Lines.Add(m.Groups[2].Value);
    mmoNew.Lines.Add(m.Groups[3].Value);
    mmoNew.EndUpdate;
  end;
1
5 / 1 / 0
Регистрация: 26.05.2014
Сообщений: 18
17.12.2015, 05:39 26
Как вариант:
Код
function extract(const Text, beginstr, endstr: string): string;
var
  startpos, endpos: Integer;
begin
  Result := '';
  startpos := Pos(beginstr, Text);
  if startpos < 1 then
    exit;
  Inc(startpos, Length(beginstr));
  endpos := Pos(endstr, Text, startpos);
  if endpos < 1 then
    exit;
  Result := Copy(Text, startpos, endpos - startpos);
end;
Текст между тегами.
0
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
17.12.2015, 20:07  [ТС] 27
Цитата Сообщение от MotoArhangel Посмотреть сообщение
Как вариант:
Спасибо, конечно, но я изучаю регулярные выражения... Так, для себя...
0
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
01.07.2018, 19:10  [ТС] 28
Воскрешу старую тему
Есть текст:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<div class='story' id='story-26798'>
<div class='id'>
<span>26798</span>
</div>
<h2><a href="/story/26798">Воспитание ребёнка начинается с воспитания родителей</a></h2>
<div class='meta'>
<div class='date-time'>Сегодня, 08:36</div>
<div class='tags'>
<i class='icon-tags'></i>
<ul>
<li><a href="/tag/transport">транспорт</a></li>
<li><a href="/tag/post">почта</a></li>
<li><a href="/tag/kids">дети</a></li>
<li><a href="/tag/relatives">родственники</a></li>
</ul>
</div>
</div>
<div class='text'>
<p>Задолбали орущие дети</p>
 
<p>Ребёнок плачет, когда ему страшно, некомфортно, он голоден, ему больно, заболел и это всё вызывает сочувствие и понимание. Есть детки с особенностями развития, особые детки.</p>
 
<p>Но есть родители, которых просто прибить хочется! Задолбали ходить толпой в магазин, аптеку, почту и вдвоём стоять в очереди с истерящим ребёнком. Папа или мама, кто-то один выйди из аптеки и погуляй с ребёнком! Ему скучно, жарко и очередь. И это не смешно когда он лапает витрины, хватает товар с полок и разбрасывает. И не надо ребёнка бить! Просто выйди и погуляй возле аптеки.</p>
 
<p>Если на улице дождь, буран, ураган и сто чертей, покажи в телефоне картинки, возьми на ручки, покажи ему памперсы с малышами, просто покажи ему что-то и отвлеки. Не пропустит вас очередь от истошного крика. В магазине можно погулять по отделам, а не стоять вдвоём в одной очереди! Нет, пересыпать конфеты и печенье с ящика в ящик это не значит отвлечь ребёнка.</p>
 
<p>Блин, у нас есть отдел с товарами для животных, книжками. Я понимаю, что к игрушкам вести рискованно, если не собираешься покупать, но можно пойти в отдел для новорождённых и рассказать, что и он был маленький и у него были сосочки и бутылочки, рыб покажите ему! Очередь на почту… Ты, мама, сидишь в телефоне, а когда ребёнок орать начинает, требуешь пропустить. Требуешь! Я на работе в перерыв выскочила, не пропущу. Неужели нет денег на карандашик и блокнотик? Или не по религии дать свой телефон и включить мультик, картинки, да хоть что-то. Селфи поделай с малышом. Я не говорю о младенце! Но если ребенок бегает на своих двоих и канючит: «Домой, на улицу, скучно», — неужели нельзя развлечь?</p>
 
<p>В поезде вообще треш. Все купе развлекает дитятко! Нет, я не включу на ноуте ему мультик, я фильм смотрю. А когда посмотрю, спать буду и ноут вам не дам. Да, я везу большой набор Лего и не открою его вам поиграть. Нет, в чемодан не спрячу, он не влезет. Да, у меня еще разукрашка для взрослых и карандаши и нет, не дам. Найдите листочек, и пусть рисует своими карандашами. Да, мои красивые, но цена… И ваш приказной и недовольный тон не возбуждает желания поделиться. Нет, мне не стыдно разукрашивать в 25 лет, меня это успокаивает. Вам должно быть стыдно за ваше поведение! Вы что, Маугли родили? Задолбали!</p>
 
<p>Племянник у меня четырёх лет, спокойный ребёнок. Когда отвозила его к родителям мы и закупились спокойно, и в поезде спокойно ехали. Ребенок поигрался, послушал сказку, порисовал и спать. Всё спокойно! Да, просился к маме, и мы маме картину рисовали, папе картинку нарисовали, придумали сказку про сыночка, маму и папу. Но не орали!</p>
 
</div>
Из него необходимо вытащить регулярными выражениями название истории, дату со временем, и, собственно сам текст. Ну и как всегда - каменный цветок не выходит

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
procedure TForm1.btnStartClick(Sender: TObject);
var
  HeadMatches, DateMatches, TextMatches : TMatchCollection;
  CountPagesMatch : TMatch;
  HeadRegularExprString, DateRegularExprString, TextRegularExprString : string;
  HTMLText : string;                      // текст для парсинга
begin
    TTask.Run(
      procedure
      var
        aHttp: THTTPClient;
        aStr: TStringStream;
      begin
        aHttp := THTTPClient.Create;
        aStr := TStringStream.Create('', TEncoding.UTF8);
          try
            aHttp.Get('https://zadolba.li', aStr);
            HTMLText := aStr.DataString;
          finally
            aHttp.Free;
            aStr.Free;
        end;
 
        TThread.Synchronize(TThread.CurrentThread,
          procedure
          var
            i: Integer;
            begin
              mmoText.Lines.Clear;
 
              HeadRegularExprString := '<h2><a href="\/story\/.*>(.*?)<\/a><\/h2>';
              DateRegularExprString := '<div class=''date-time''>(.*?)<\/div>';
              TextRegularExprString := '<div class=''text''>(\s+)?([^<].*?)<';
 
              HeadMatches := TRegEx.Matches(HTMLText, HeadRegularExprString, [roIgnoreCase, roMultiLine]);
              DateMatches := TRegEx.Matches(HTMLText, DateRegularExprString, [roIgnoreCase, roMultiLine]);
              TextMatches := TRegEx.Matches(HTMLText, TextRegularExprString, [roIgnoreCase, roMultiLine]);
 
 
//              if HeadMatches.Count = MsgMatches.Count then
//                begin
                    for i := 0 to HeadMatches.Count - 1 do
                      begin
                        mmoText.Lines.Add(HeadMatches.Item[i].Groups[1].Value);
                        mmoText.Lines.Add(DateMatches.Item[i].Groups[1].Value);
                        mmoText.Lines.Add(TextMatches.Item[i].Groups[1].Value);
                      end;
//                      end;
                end);
            end);
end;
Все получается (правда отдельными регулярками), кроме самого текста... Подскажите, как поправить регулярку?
И, как и несколько лет назад - интересно решение с использованием одного регулярного выражения. Спасибо!
0
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
03.07.2018, 18:17  [ТС] 29
Добавлено через 28 минут
Вот получилась рабочая регулярка, на выходе выдает много лишних тегов... Хочется теперь посредством этой самой регулярки избавиться от тегов типа <p>, </p> и пр.

Delphi
1
<div class=''text''>([\s\S]+?)<\/div>
0
03.07.2018, 18:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2018, 18:17
Помогаю со студенческими работами здесь

Парсинг html регулярными выражениями
Хочу пропарсить html документом регулярками. Вот документ : ...

Парсинг HTML регулярными выражениями
&lt;span class=&quot;classname&quot;&gt; $33.33 MGP &lt;/span&gt; Нужно спарсить все значеня между тегом &lt;span&gt; с...

Работа с регулярными выражениями (парсинг txt-файла)
подскажите пожалуйста. хочу сделать парсер по файлу тхт написал вот такой код с регулярными...

Задача с регулярными выражениями
Добрый день, нужно реализовать скрипт с помощью регулярных выражений: С клавиатуры введены две...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru