Программирование > Регулярные выражения

Что это значит?

(1/1)

PHP'шкин:
Попалось мне такое регулярное выражение:

preg_match("/revalidate(.*?)Location/is", $aa, $bb)

Сколько не искал, так не нашел, что значит в этом выражении последовательность "(.*?)" и "is" после слеша в конце. Кто знает, объясните по-подробнее (ссылки приветствуются). Спасибо

PHP'шкин:
Вроде сюда написал. Что не знает никто?

Altaxar:
(.*?)- соотведствует любой строке или пустоте, от revalidate до первого совпадения Location и все это передать в массив.
/is - настройки регулярки,
сылки: google -> "Регулярные выражения" -> Search
там найдеш подробно обо всем.

So1:
(.*?) - люая строка или ее отсутствие. Данные .*? могут быть получены через $1.
Тут любая строка задается через .* и использование минимизатора квантификатора ? по сути является бессмысленным, т.е. будет работать и без знака вопроса.
/is:
i говорит о том что не важен регистр символов
s говорит о том что метасимвол ТОЧКА используется для всех символов включая символ новой строки, т.е. ищутся совпадения такие как:
revalidateLocation
revalidate тра ля ля Location
revalidate тра
ля ля
Location

Для первого случая в $1 = "", для второго случая $1 будет содержать "тра ля ля", третий $1 = " тра \\nля ля \\n".

Благодаря /i еще валидно следующее
REVALIDATE>>>LOCATION


В помощь гугл. Ну а там уже посмотришь запросы какие нужны. Я думаю что есть смысл глянуть что то вроде
"PCRE модификаторы"
"синтаксис PCRE REGEX"

PHP'шкин:
Всем спасибо за ответы.

--- Цитировать ---Тут любая строка задается через .* и использование минимизатора квантификатора ? по сути является бессмысленным, т.е. будет работать и без знака вопроса.
--- Конец цитаты ---

Как показали эксперименты, при отсутствии знака вопроса регулярное выражение находит все строки в плоть до последнего включения строки Location (когда их несколько). При наличии знака вопроса строка Location входит в результат только единожды (при первом входе в $aa).

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии