Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

Конечно, есть! а что она делает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо