В заметке описаны два варианта работы с регулярными выражениями в Delphi.
Регулярные выражения очень мощный инструмент для работы с подстроками в тексте. Они очень помогают мне при анализе текстовых файлов. В данной заметке хочу описать два возможных варианта использования регулярных выражений в Delphi. Первый это библиотека TRegExpr(http://regexpstudio.com/), но к сожалению она не поддерживает некоторый синтаксис. Её можно использовать на старых версия Delphi. Начиная с Delphi XE появился встроенный механизм работы с регулярными выражении и находится он в модуле RegularExpressions.pas(http://docwiki.embarcadero.com/Libraries/XE8/en/System.RegularExpressions), это более современная реализация.
Основной синтаксис регулярных выражений можно посмотреть на следующих ресурсах:
Шпаргалка по регулярным выражениям
Синтаксис регулярных выражений
Регулярные выражения
Синтаксис регулярного выражения
Регулярные выражения в Java
Регулярные выражения в Java (regexp)
http://htmlweb.ru/php/example/preg.php
Регулярные выражения
Регулярные выражения в Delphi
Delphi XE. Работа с регулярными выражениями
Теперь рассмотри пример использования регулярных выражений в Delphi. Допустим нам нужно найти первое слово или число в тексте которое следует сразу за знаком ":" для этого этого нам понадобится такое регулярное выражение
Но к сожалению TRegExpr не поддерживает синтаксис определения впереди стоящего символа. В этом случае последовательно будем применять 2 регулярных выражения.
и
http://regexpal.com/
http://sharpdev.ru/Regex/Sharp - на момент написания сервер упал
http://regexr.com/
https://regex101.com/#pcre
Регулярные выражения очень мощный инструмент для работы с подстроками в тексте. Они очень помогают мне при анализе текстовых файлов. В данной заметке хочу описать два возможных варианта использования регулярных выражений в Delphi. Первый это библиотека TRegExpr(http://regexpstudio.com/), но к сожалению она не поддерживает некоторый синтаксис. Её можно использовать на старых версия Delphi. Начиная с Delphi XE появился встроенный механизм работы с регулярными выражении и находится он в модуле RegularExpressions.pas(http://docwiki.embarcadero.com/Libraries/XE8/en/System.RegularExpressions), это более современная реализация.
Основной синтаксис регулярных выражений можно посмотреть на следующих ресурсах:
Шпаргалка по регулярным выражениям
Синтаксис регулярных выражений
Регулярные выражения
Синтаксис регулярного выражения
Регулярные выражения в Java
Регулярные выражения в Java (regexp)
http://htmlweb.ru/php/example/preg.php
Регулярные выражения
Регулярные выражения в Delphi
Delphi XE. Работа с регулярными выражениями
Теперь рассмотри пример использования регулярных выражений в Delphi. Допустим нам нужно найти первое слово или число в тексте которое следует сразу за знаком ":" для этого этого нам понадобится такое регулярное выражение
(?<=:)\w+
Но к сожалению TRegExpr не поддерживает синтаксис определения впереди стоящего символа. В этом случае последовательно будем применять 2 регулярных выражения.
:\w+
и
\w+
Пример на TRegExpr
function GetWordAfterColon: string;
var
RegExp:TRegExpr;
RegExpMath:TRegExpr;
begin
Result:='';
RegExp:=TRegExpr.Create;//первое регулярное выражение
RegExpMath:=TRegExpr.create;//второе регулярное выражение
try
RegExp.Expression := ':\w+';//задаем выражение поиска слова с :
RegExpMath.Expression := '\w+';//поиск слова
if RegExp.Exec(Str) then//находим слово с двоеточием
begin
RegExpMath.Exec(RegExp.Match[0]);//из найденной строки ищем просто слово
Result:=RegExpMath.Match[0];//получаем нужное значение
end;
finally
RegExp.Free;
RegExpMath.free;
end;
end;
Пример на RegularExpressions
function GetWordAfterColon: string;
var
RegEx: TRegEx;
M: TMatchCollection;
i,j:integer;
begin
Result:='';
RegEx:=TRegEx.Create('(?<=:)\w+');//задаем регулярное выражение
M:=RegEx.Matches(str);//получаем коллекцию совпадений
for i:=0 to M.Count-1 do//идём по коллекции
begin
Result:=M.Item[i].Value;//получаем значение
break;
end;
end;
Также хочу оставить здесь ссылки на онлайн сервисы проверки регулярных выражений:http://regexpal.com/
http://sharpdev.ru/Regex/Sharp - на момент написания сервер упал
http://regexr.com/
https://regex101.com/#pcre
Комментариев нет:
Отправить комментарий