![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
preg_match_all в Delphi [D7, XP]
Lamer666 © (2008-07-28 22:05:00)Всех приветсвую!
Давно не был у вас уважаемые...Снова пришел за советом...
Есть функция в PHP под названием preg_match_all, есть ли ее аналог в Delphi?
Всем благодарен!
С уважением Lamer666
Сергей М. (2008-07-29 16:00:00) [1]
> Да!
Велосипед !
см.
http://www.google.ru/search?aq=f&complete=1&hl=ru&newwindow=1&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&q=Delphi+IHTMLDocument&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru
Lamer666 (2008-07-29 15:51:00) [2]Всем спасибо!
TRegExpr - хорошая вещь, экономит много времени!
Lamer666 (2008-07-29 15:50:00) [3]
with TRegExpr.Create do
try
Expression := 'width';
if Exec(S) then
begin
ShowMessage('Нашел');
end;
finally
Free;
end;
Вот так работает.... видимо синтаксис немного отличаеться от PHP
Lamer666 (2008-07-29 15:45:00) [4]
> Так ты ищешь теги <width> что ли ?
Да!
Видимо и вправду проблема в записи условия регулярного выражения!
Сергей М. (2008-07-29 15:39:00) [5]
> Ошибка возщникает на строке
> TRegExpr.Create
Не можетупомянутая ошибка возникать при конструировании объекта TRegExpr.
Либо ты пользуешь какую-то древнюю не доведенную до ума версию RegExpr, где подобные ошибки могли иметь место.
Так ты ищешь теги <width> что ли ?
Lamer666 (2008-07-29 15:28:00) [6]Ошибка возщникает на строке
TRegExpr.Create
> Чему равно S ?
S="<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<TITLE>jdfghjfghj</TITLE>
<LINK rel="stylesheet" href="/ps/selfcare_mcs/css/style.css" type="text/css">
<SCRIPT src="/ps/selfcare_mcs/js/current.js" language="javascript" type="text/javascript" defer></SCRIPT>
</HEAD>..............."
Сергей М. (2008-07-29 15:17:00) [7]
> Lamer666 (29.07.08 14:38) [5]
Чему равно S ?
ifrau (2008-07-29 15:01:00) [8]справок для этого компонента полно в сети
там еще модификаторы, по-моему, задать надо должным образом
ну и сам Expression правильно написать
поищи справку, там все подробно расписано, с примерами
easy (2008-07-29 14:53:00) [9]
Expression := '(?im)^.*width.*$';
PS. там справка русская есть
Lamer666 (2008-07-29 14:38:00) [10]При использовании кода:
with TRegExpr.Create do
try
Expression := '^*width*$';
if Exec(S) then
begin
ShowMessage('Нашел');
end;
finally
Free;
end;
где S строка содержащяя результат выполнения метода POST (код HTML странички)!
приложение выдает ошибку: TRegExpr(comp):*+Operand Could Be Empty (pos 1)
В примере работает, уменя НЕТ, помогите ребята!
Заранее примного благодарен!
Lamer666 (2008-07-28 22:48:00) [11]
> Сергей М. © (28.07.08 22:46) [3]
Простите! Можно, но людям свой ственно выбирать простые пути...
Вот вы дали направление TRegExpr, теперь все ясно... И вопросов нет!
Спасибо!
Сергей М. (2008-07-28 22:46:00) [12]
> есть ли ее аналог в Delphi?
Нет.
Но есть аналог среди сторонних компонентов. которые могут быть использованы при программировании Делфи-приложений.
Например. TRegExpr.
А что, гуглить на тему "Delphi регулярные выражения" 666-ым ламерам разве нельзя ?)
Lamer666 (2008-07-28 22:43:00) [13]: )
Оптимистично!
preg_match_all
Ищет в строке subject все совпадения с шаблоном и помещает результат в массив
Например preg_match_all("/[0-9]{1,2}[:][0-9]{2}/",$file,$out_arr);
Возвращяет все строки в которых первые два символа цифры от 0-9, затем идет : ну и так далеее:
01:02
77:88
5:49
KilkennyCat (2008-07-28 22:12:00) [14]Конечно, есть! а что она делает?