Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

14.11.2009, 15:15
|
|
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
Провел на форуме: 840493
Репутация:
0
|
|
Регулярное выражение
Помогите пожалуйста составить регулярное выражение, никак не могу догнать как работать с этой хитроумной вещью!
Код:
<html>
<head>
<title>Здесь заголовок крутого сайта</title>
<meta name="description" content="Здесь описание крутого сайта, лялял ерундна.">
<meta name="keywords" content=
нужно чтобы содержание текста между тегами <title> и </title> записалось в переменную A, а содержание описания записалось в переменную B. Помогите пожалуйста 
|
|
|

14.11.2009, 16:31
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
я не знаю на чем ты пишешь. на PCRE у меня получилось примерно такое выражение
/<title>(.*?)<\/title>\r\n.*iption\" content=\"(.*?)\"/
|
|
|

14.11.2009, 16:49
|
|
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
Провел на форуме: 840493
Репутация:
0
|
|
Я пишу на делфи, с помощью компонента regexpr. Я попробовал с твоим кодом:
Код:
procedure TForm1.btn2Click(Sender: TObject);
var
Reg1: TRegExpr;
begin
Reg1 := TRegExpr.Create;
Reg1.Expression:= '<title>(.*?)<\/title>\r\n.*iption\" content=\"(.*?)\"';
if Reg1.Exec(mmo1.Text) then
ShowMessage(Reg1.Match[1])
else ShowMessage('Не найдено');
end;
в итоге пишет не найдено  Может стоить перед <title> поставить * ? Пробую, вылетает ошибка 
|
|
|

14.11.2009, 16:57
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
хмм делфи... ну попробуй замени \r\n на '.#10#13.' эмм или #13#10 не помню коды )
типа
Reg1.Expression:= '<title>(.*?)<\/title>'.#10#13.'.*iption\" content=\"(.*?)\"';
|
|
|

14.11.2009, 17:03
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
PHP код:
procedure TForm1.btn2Click(Sender: TObject);
var Reg1: TRegExpr;
begin
Reg1 := TRegExpr.Create;
Reg1.Expression:= '<title>(.+?)<.title>';
if Reg1.Exec(mmo1.Text) then
ShowMessage(Reg1.Match[1])
else
ShowMessage('Не найдено');
end;
|
|
|

14.11.2009, 17:09
|
|
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
Провел на форуме: 840493
Репутация:
0
|
|
записывал так Reg1.Expression:= '<title>(.*?)<\/title>'+#10#13+'.*iption\" content=\"(.*?)\"'; и не найдено в итоге, попробовал Reg1.Expression:= '<title>(.+?)<.title>'; выдало заголовок, теперь осталось вывести только описание 
|
|
|

14.11.2009, 17:41
|
|
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
Провел на форуме: 840493
Репутация:
0
|
|
спасибо Гарик, спасибо eLWAux Вы Мне очень помогли 
|
|
|

14.11.2009, 18:26
|
|
Новичок
Регистрация: 27.10.2008
Сообщений: 16
Провел на форуме: 43938
Репутация:
0
|
|
Ну в описании я подозреваю будет что-то типа:
Код:
Reg1.Expression:= '<meta name="description" content="(.+?)">
';
|
|
|
|
 |
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
C# регулярное выражение
|
kusanagi |
С/С++, C#, Delphi, .NET, Asm |
1 |
17.07.2009 14:33 |
|
Помогите составить регулярное выражение
|
slesh |
PHP, PERL, MySQL, JavaScript |
7 |
03.06.2009 09:39 |
|
WebScarab - профессиональный инструмент для анализа защищённости веб-приложений
|
Kuzya |
Авторские статьи |
5 |
09.04.2009 21:54 |
|
регулярное php
|
barnaki |
PHP, PERL, MySQL, JavaScript |
13 |
08.02.2009 20:31 |
|
Обнаружение Sql инъекций и Css атак
|
k00p3r |
Чужие Статьи |
0 |
12.06.2005 20:43 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|