Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
6 / 8 / 2
Регистрация: 20.12.2012
Сообщений: 744

Незапоминающие скобки в TRegExpr

18.10.2016, 20:19. Показов 1739. Ответов 3

Студворк — интернет-сервис помощи студентам
Использую Delphi 7 + TRegExpr. Скажите пожалуйста, можно ли здесь использовать "незапоминающие скобки" (т.е. не помещать найденную подстроку в массив Match) как в php?

Например:
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
procedure TForm1.Button1Click(Sender: TObject);
var
  RegexObj: TRegExpr;
  str, reg: string;
begin
 
  str := 'img="photo.png"' + #13#10 +
         'site="wikipedia.org"' + #13#10 +
         'music="song.mp3"';
  reg := '(?:site|music)="(.*?)"';
 
  RegexObj := TRegExpr.Create;
  RegexObj.ModifierI := true; //case insensitive
  RegexObj.ModifierG := true; //case insensitive
  RegexObj.Expression := reg;
  Memo2.Clear;
  if RegexObj.Exec(str) then
  begin
    repeat
      Memo2.Lines.Add(RegexObj.Match[1]);
    until not RegexObj.ExecNext;
  end;
  RegexObj.Free;
end;
Этот код даёт ошибку:


Если заменить на обычные (site|music)="(.*?)", то работает, но мне хочется с незапоминающими.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2016, 20:19
Ответы с готовыми решениями:

Регулярные выражения и TRegExpr
Использую объект RegExpr - регулярные выражения. Поиск по сайту - парсинг. Результаты парсинга складываются в TStringList. Все вделано в...

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

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

3
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6812 / 2052 / 238
Регистрация: 14.12.2014
Сообщений: 4,305
Записей в блоге: 12
24.10.2016, 13:15
Если заглянуть в исходник regexpr.pas, то судя по всему, выражения (?:blabla) не поддерживаются.
0
6 / 8 / 2
Регистрация: 20.12.2012
Сообщений: 744
24.10.2016, 15:08  [ТС]
Проблема решилась путём использования TPerlRegEx вместо TRegExpr.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6812 / 2052 / 238
Регистрация: 14.12.2014
Сообщений: 4,305
Записей в блоге: 12
24.10.2016, 16:33
Да, как раз хотел сказать, что в Delphi XE (RAD Studio XE) есть поддержка RegExp (TRegEx, TPerlRegEx).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.10.2016, 16:33
Помогаю со студенческими работами здесь

Составить регулярное выражение Delphi > TRegExpr
День добрый! Как правильно составить регулярное выражение чтобы получить из следующих строк кодировку UTF-8 <meta...

Для каждой открывающей скобки найти позицию ей соответствующей закрывающей скобки
Даны 4 вида скобок () {} <>. Для каждой открывающей скобки найти позицию ей соответствующей закрывающей скобки,использую стек. Помогите с...

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

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

Фигурные скобки: Мне пишут что ошибка в закрытие скобки после return.
#include <iostream> using namespace std; int main(){ int *ptr_number = new int; int *sum = new int(0); cin >> *ptr_number; ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru