Forum Webscript.Ru
Программирование => Perl => Тема начата: DartSidius от 26 Марта 2006, 15:57:44
-
Есть переменная $page - в ней содержится html страница...собсвенно надо из неё выдрать то, что содержится в теге
-
if ($page =~ //gi){
$temp=$\';
$temp =~ m/<\\/title>/gi;
$temp=$`;
print $temp;
}
else { print "Заголовок не найден"; }
-
ужас какой :)..а проще?..просто регулярным выражением одним?
-
одним выражением так
print $1 if $page=~/.(.*?)<\\/title>/i;
-
А точка там зачем? "." - ?
if( $page =~ /(.*?)<\\/title>/ ) { print $1; }
не... просто интересно...
Да, кстати.... а если встретиться конструкция типа:
TitleSome Text - ?
Я не спец в RegExp, что он выдернет? Просто вроде есть всякие эти... не помню как называются :Р значки типа ?: ?= которыми можно ограничить зону поиска... всмысле задать что бы в (.*?) не встречались больше никаких
-
Алан:
А точка там зачем? "." - ?
Насчет точки - очепятка :)
из вашего примера
Алан:
TitleSome Text
регэксп /(.*)<\\/title>/ вернул бы в $1 значение "TitleSome Text" т.е. если есть возможность выбора - то всегда возвращается более длинный вариант.
добавление ? к * значит, что если есть выбор, то возвращается более короткий вариант.
-
спасибо, понятно :)
-
Если из "TitleSome Text" нужно выдрать "Title", используй /(.*?)<\\/title>/.