Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Парсер строки (вырезать текст)


Автор: Black 11.4.2006, 23:23
Необходимо вырезать текст между
<title>[вырезаем]</title>

Код

тут тест<title>тут любой текст с любыми символами и переводами строк</title> тут любой текст



Пишу регулярное выражение:

/<title>(.*)<\/title>/

Но не работает. Меня интересует вопрос, как в регулярных выражениях указывается ВООБЩЕ ЛЮБОЙ СИМВОЛ, который может стоять (то есть - все печатаемые символы, цифры, пробелы и т.д.)
Так как я вообще не знаю, что может быть написано между <title></title>

Может кто-нибудь подскажет другой алгоритм без регулярных выражений?

Автор: paraZite 12.4.2006, 00:15
после "*" не помешает знак "?" поставить.

Автор: CyClon 12.4.2006, 13:55
Код
preg_match("#<title>(.*)</title>#", $string, $matches);


Любой символ - это . - точка.
* - повторяется от 0 до бесконечности раз
+ - повторяется от 1 до бесконечности раз

Автор: skalex 12.4.2006, 18:29
CyClon, при чем тут preg_match ???

Код
preg_replace('%(<title>)(.*?)(</title>)%ms', '\\1\\3', $string)

Добавлено @ 18:32
Цитата
Может кто-нибудь подскажет другой алгоритм без регулярных выражений?


Регулярные выражения как раз и служат для выполнения такого рода задач.

Автор: CyClon 14.4.2006, 12:49
Цитата
preg_match ???


Для примера.

Автор: Black 14.4.2006, 12:50
paraZite, да ? помог. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)