Страницы

Поиск по вопросам

четверг, 19 декабря 2019 г.

Карманы в регулярных выражениях

#регулярные_выражения #php


В книге Д. Котерова есть глава "карманы регулярок", но слабо понимаю, что это. Может
мини лекцию кто-то проведет или ссылки, или книги, где это описано.

Может это имеет другое название?
    


Ответы

Ответ 1



Вкратце: preg_match('/([abc]+)([0-9]+)(?:[a-z0-9]+)/',,); Почти все, что между // заключено в круглые скобки будет запомнено в специальных временных переменных. Странное название "карманы" слышу первый раз, но да ладно. /..../ соответствует нулевому карману. То есть все, что совпало с полным выражением, попадет в переменную $0. ([abc]+) - это первый карман. ([0-9]+) - второй. (?:[a-z0-9]+) - вообще никакой, так как слово ?: говорит о том, что данную группировку запоминать не надо. Чтобы подробнее это понять, составьте сложную регулярку, сделайте preg_match_all по длинному тексту, а потом результат распечатайте с помощью print_r.

Комментариев нет:

Отправить комментарий