Помогите пожалуйста составить регулярное выражение, никак не могу догнать как работать с этой хитроумной вещью! Code: <html> <head> <title>Здесь заголовок крутого сайта</title> <meta name="description" content="Здесь описание крутого сайта, лялял ерундна."> <meta name="keywords" content= нужно чтобы содержание текста между тегами <title> и </title> записалось в переменную A, а содержание описания записалось в переменную B. Помогите пожалуйста
я не знаю на чем ты пишешь. на PCRE у меня получилось примерно такое выражение /<title>(.*?)<\/title>\r\n.*iption\" content=\"(.*?)\"/
Я пишу на делфи, с помощью компонента regexpr. Я попробовал с твоим кодом: Code: 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> поставить * ? Пробую, вылетает ошибка
хмм делфи... ну попробуй замени \r\n на '.#10#13.' эмм или #13#10 не помню коды ) типа Reg1.Expression:= '<title>(.*?)<\/title>'.#10#13.'.*iption\" content=\"(.*?)\"';
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;
записывал так Reg1.Expression:= '<title>(.*?)<\/title>'+#10#13+'.*iption\" content=\"(.*?)\"'; и не найдено в итоге, попробовал Reg1.Expression:= '<title>(.+?)<.title>'; выдало заголовок, теперь осталось вывести только описание
Ну в описании я подозреваю будет что-то типа: Code: Reg1.Expression:= '<meta name="description" content="(.+?)"> ';