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


Автор: CyClon 18.2.2006, 09:55
В основоном мне нужно знать синтаксис. Прочитал около 5 статей - только в одной нешл синтаксис ereg-выражений. Т.е. что значит +, -, ., * и т.д.
А вот прос PERL-совместимые ниего найти не могу. Насколько я знаю, если в тексте встречается символ @, то лучше использовать их (http://php.spb.ru/php/speed.html). А если не встречается @, то уже юзать ereg.
В общем ожет кто расскажет, как пользоваться тем же preg_match или preg_replace. Зачем ставят слеши (/), какие символы за что отвечают и т.д.

Автор: CyClon 18.2.2006, 10:23
Всем спасибо, все что надо нашел.

//www.providers.ru/articles/php/

Автор: -=Ustas=- 18.2.2006, 13:08
А также можешь поискать в нете книгу Джона Фридла "Регулярные выражения". Очень полезная весч, эти твои вопросы сразу же отпадут. smile

Автор: CyClon 18.2.2006, 19:46
-=Ustas=-, перечитал 50 листов статей. Я не знаю, откуда после прочтения 50 листов могут браться вопросыsmile)) А берутся, млин.

Автор: CyClon 19.2.2006, 10:22
У меня вопрос. Некоторые пишут ругулярки так:

Код
preg_match("#...#", $var);


А некоторые так:

Код
preg_match("/.../", $var);


Как правильнее?

Автор: Mal Hack 19.2.2006, 15:15
Модератор: пожалуйста, используйте поиск. Это уже не раз обсуждалось.

Цитата(CyClon @ 19.2.2006, 10:22 Найти цитируемый пост)
Как правильнее?

Как удобнее.
Разные # или % и т.п. как бы уже содержа в себе определенные модификаторы. Вроде бы.

Автор: Guedda 24.2.2006, 17:52
Советую почитать еще PHP5 в подлиннике Д. Котерова и А. Костарева.
Там очень хорошо все написано.

Автор: Zonar 29.1.2008, 08:27
Цитата(CyClon @ 19.2.2006,  10:22)
У меня вопрос. Некоторые пишут ругулярки так:

Код
preg_match("#...#", $var);


А некоторые так:

Код
preg_match("/.../", $var);


Как правильнее?

Если мне помнится, то ## --идеинтичны /.../   -- Что то , что это однострочные понятия. Так что без разницы.

Автор: GeneralElectric 29.1.2008, 11:51
Тема старая, но поскольку ответа все равно нет, то лучше отписаться.
Первый и последний символ в шаблоне PCRE - это ограничители. Это может быть вообще любой символ. Какой угодно.
Необходимость в ограничителях идет от синтаксиса Перла. И традиционный ограничитель,  / - тоже.
формат шаблона такой: "ограничитель шаблон ограничитель модификаторы". И вот чтобы отделить модификаторы от шаблона, и нужны все эти // или ## или ~~ или что угодно.

Поскольку ограничитель, разумеется, надо экранировать в шаблоне, то сообразительные программисты используют для него какой-нибудь малоупотребительный символ, к примеру ту самую решетку.
Ср.: 
Код

/http:\/\/www.site.ru\/dir\//
 и 
Код

#http://www.site.ru/dir/#


Так же см. http://php.net/preg_quote

А по самому первому вопросу хороший сайт http://phpfaq.ru/regexp

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