Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146

Шаблон для регулярки TRegExpr

04.07.2014, 23:44. Показов 893. Ответов 4
Метки нет (Все метки)

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

Имеем кусок текста:
Code
1
2
3
4
5
6
7
<odin>
// текст который надо спарсить
</odin>
// тут много текста включая html теги
<dva>
// текст который надо спарсить
</dva>
все это дело надо парсить сразу и с одного запроса.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2014, 23:44
Ответы с готовыми решениями:

Незапоминающие скобки в TRegExpr
Использую Delphi 7 + TRegExpr. Скажите пожалуйста, можно ли здесь использовать &quot;незапоминающие скобки&quot; (т.е. не помещать найденную...

Шаблон для регулярки TRegExpr
Помогите пожалуйста составить шаблон для регулярки TRegExpr Имеем кусок текста: &lt;odin&gt; // текст который надо спарсить ...

Регулярки для запроса
День добрый! Есть sql запрос SELECT в результате выводят данные но мне нужно к примеру из столбца брать не все данные а которые идут до...

4
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
05.07.2014, 02:32
С одного запроса, но ExecNext придется несколько раз гонять:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
  re := TRegExpr.Create;
  re.ModifierM := true;
  re.InputString := Memo1.Text;
  re.Expression := '<(odin|dva)>(.*?)</\1>';
  re.Compile;
  try
    if re.Exec(re.InputString) then
      repeat
        Memo2.Lines.Add(re.Match[2]);
      until not re.ExecNext;
  finally
    re.Free;
  end;
0
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
05.07.2014, 03:44  [ТС]
Code
1
RegExp.Expression:='(<odin>(.*?)</odin>|<odin>(.*?)</odin>)';
пробовал так, в новом проэкте работает идеально (для теста регулярки) а в моем проэкте с этим же шаблоном получаю "" is not a valid integer value, но в чем проблема не могу понять.

Добавлено через 5 минут
Code
1
RegExp.Expression:='(<odin>(.*?)</odin>|<dva>(.*?)</dva>)';
пробовал так, в новом проэкте работает идеально (для теста регулярки) а в моем проэкте с этим же шаблоном получаю "" is not a valid integer value, но в чем проблема не могу понять.



----
отредактировал.

---



Короче выяснилось что, такой шаблон как я скинул выше работает, но, спаршенное надо куда-то записывать и уже дальше из спаршенное парсить другие нужные значения т.к если не записать и парсить дальше значения из того что спарсилось получаю ошибку описанную выше

Добавлено через 6 минут
Есть у кого-то идеи как сделать так чтобы сначала спарсились значения между <odin></odin> и <dva></dva> и после того как все значения спарсятся - чтобы только тогда начали парситься другие значения? Может немного бредово написал но уж как есть.

Добавлено через 52 минуты
прошу перенести тему в "Delphi для начинающих" + тему офф, решил отказаться от этой затеи.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
05.07.2014, 05:03
Ты ответы принципиально не читаешь, или у тебя просто проблемы со зрением, и ты их не видишь? Я ж показал, что результаты хранятся в re.Match[2] (сохраняй их куда нужно, и потом обрабатывай, после окончания цикла repeat/until, это же элементарно), и как сделать регулярку чуть короче, чтобы не было полного повтора выражения с двумя разными тегами - тоже показал, ты продолжил упорно гнуть своё. На фига спрашивать тогда, если тебе ответы не нужны?
0
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 146
05.07.2014, 05:58  [ТС]
UI, я читаю ответ, за код тобою предоставленный спасибо большое, но, прикол в том что у меня сначала идет список данных <odin></odin> раз 200-300,

пример:
Code
1
2
3
4
5
6
7
8
9
10
<odin>текст который надо спарсить, он всегда разный</odin>
<odin>текст который надо спарсить, он всегда разный</odin>
<odin>текст который надо спарсить, он всегда разный</odin>
<odin>текст который надо спарсить, он всегда разный</odin>
<odin>текст который надо спарсить, он всегда разный</odin>
<odin>текст который надо спарсить, он всегда разный</odin>
<odin>текст который надо спарсить, он всегда разный</odin>
<odin>текст который надо спарсить, он всегда разный</odin>
<odin>текст который надо спарсить, он всегда разный</odin>
<odin>текст который надо спарсить, он всегда разный</odin>
и т.д

после него идет список <dva></dva> в котором лежат данніе от списка <odin></odin>, список <dva></dva> идет так же как и список <odin></odin>

пример:
Code
1
2
3
4
5
6
7
8
9
10
<dva>текст который надо спарсить, он всегда разный<dva>
<dva>текст который надо спарсить, он всегда разный<dva>
<dva>текст который надо спарсить, он всегда разный<dva>
<dva>текст который надо спарсить, он всегда разный<dva>
<dva>текст который надо спарсить, он всегда разный<dva>
<dva>текст который надо спарсить, он всегда разный<dva>
<dva>текст который надо спарсить, он всегда разный<dva>
<dva>текст который надо спарсить, он всегда разный<dva>
<dva>текст который надо спарсить, он всегда разный<dva>
<dva>текст который надо спарсить, он всегда разный<dva>
в итоге мне надо грузить сразу в ListView в одну строку данные из <odin></odin> и данные из <dva></dva> а чтобы это реализовать надо неделю сидеть и танцевать с бубном.

пожалуйста, перенеси тему в соответсвующий раздел, я разделом ошибся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.07.2014, 05:58
Помогаю со студенческими работами здесь

Составление паттерна для регулярки
До последнего пытался справиться сам, но видимо не судьба... Пишу свой парсер математических операций, и все было бы хорошо, если бы...

Построение регулярки для html
Помогите составить регулярку для получения значения Значение выделено красным &lt;div class=&quot;ii _temp&quot;&gt;&lt;div...

Создание простой регулярки для поиска строки
Есть файл со строками: $your_email=&quot;test@email.com&quot;; $your_adress=&quot;test adress&quot;; ... Все переменные в файле уникальны Нужно...

Как составить исключающий список для регулярки?
Приветствую ! Подкажите, пожалуйста, как верно составить такое: Есть два списка выражений, например: patt1 = 'король|дама';...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru