Регулярні вирази RegExpr / Delphi / TDLite

  1. установка
  2. Використання
  3. аналог preg_match_all
  4. одиночна лапки
  5. висновок

Дуже часто основною функцією програми є парсинг тексту і видирання потрібної інформації
Дуже часто основною функцією програми є парсинг тексту і "видирання" потрібної інформації. І якщо не скористатися додатковими компонентами, то це може стати справжньою проблемою, на вирішення якої кожен раз буде витрачатися багато часу. Для цих цілей зручно користуватися модулем регулярних виразів RegExpr.

установка

Для установки і підключення модуля необхідно помістити файл regexpr.pas в папку з проектом, а в директиві uses додати RegExpr.
Для установки і підключення модуля необхідно помістити файл   regexpr

Використання

Для початку необхідно оголосити змінну класу TRegExpr і створити його екземпляр. Після цього присвоюємо властивості InputString текст, в якому буде здійснюватися пошук по певній масці. Цю маску, або як його ще називають, шаблон поміщаємо в властивість Expression.
Функція Exec виконує пошук по тексту: якщо з умовою шаблону щось збігається, то функція поверне true, або false при розбіжності, відповідно. Отримати текст задовольняє масці можна з змінної Match [1].

procedure TfrmMain.FormCreate (Sender: TObject); var RegExp: TRegExpr; begin RegExp: = TRegExpr.Create; RegExp.InputString: = 'Delphi <a href="tdlite.exe"> download </a>'; RegExp.Expression: = 'href = "(. *?)"> (. *?) <'; if RegExp.Exec then begin ShowMessage (RegExp.Match [1]); { "Tdlite.exe"} ShowMessage (RegExp.Match [2]); { "Download"} end; RegExp.Free; end;

аналог preg_match_all

Для того, щоб отримати не тільки перший збіг, але і всі наступні, можна використовувати наступну конструкцію:

procedure TfrmMain.FormCreate (Sender: TObject); var RegExp: TRegExpr; begin RegExp: = TRegExpr.Create; RegExp.InputString: = 'Delphi <a href="tdlite.exe"> download </a> JavaScript <a href="js.exe"> download </a>'; RegExp.Expression: = 'href = "(. *?)"'; if RegExp.Exec then repeat ShowMessage (RegExp.Match [1]); until not RegExp.ExecNext; RegExp.Free; end;

одиночна лапки

Уважний читач помітить, що в регулярке не вийде скористатися символом одиночної лапки '. Замість неї можна використовувати цифровий код символу # 39.
приклад використання

RegExp.Expression: = 'href =' # 39 '(. *?)' # 39; {Href = '(. *?)'}

висновок

В іншому робота з регекспи практично схожа з їх реалізацією в інших мовах, таких як PHP, Perl і т.д.

завантажити regexpr.zip
Розмір: 33.5 kB - Скачувань: 440 - Скачан останній раз: 15.08.2012 8:58

Схожі статті:

  1. Функції кодування Base64
  2. Кількість елементів в IEnumVARIANT
  3. Компонент Antigate для Delphi
  4. Використання XML в Delphi (msxml_tlb)

Дополнительная информация

rss
Карта