Найти в Дзене
CODEARMY

Регулярные выравжения в PHP для новичков

Как говорится, программист хотел решить проблему с помощью регулярных выражений, теперь у него 2 проблемы. Что нам потребуется для их освоения? Шпаргалка на exlab http://www.exlab.net/files/tools/sheets/regexp/regexp.png Online-песочница для PHP http://sandbox.onlinephpfunctions.com/ Сайт для онлайн-тестирования регулярных выражений https://regex101.com/ Есть ещё сайт https://regexr.com/ но мы будем пользоваться первым. На сайте можно сохранить регулярку и отправить другу что бы задать вопрос. Итак, в поле для регулярного выражения введём букву а a В поле текст запишем: abra kadabra Такое выражение находит все буквы a в тексте, сбоку список найденного (совпадений) и их позиции. Теперь 2 буквы а, идущие подряд aa Ничего не найдено. Добавим в текст: abra kadabra aa Теперь совпадение найдено. Пояснение про g и preg_match_all: Теперь давайте используем функцию preg_match с этим регулярным выражением. Проблема: онлайн-редактор находит все, моя функция находит только одну букву. Всё дело в

Как говорится, программист хотел решить проблему с помощью регулярных выражений, теперь у него 2 проблемы.

Что нам потребуется для их освоения?

Шпаргалка на exlab http://www.exlab.net/files/tools/sheets/regexp/regexp.png

Online-песочница для PHP http://sandbox.onlinephpfunctions.com/

Сайт для онлайн-тестирования регулярных выражений https://regex101.com/

Есть ещё сайт https://regexr.com/ но мы будем пользоваться первым.

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

Итак, в поле для регулярного выражения введём букву а

a

В поле текст запишем:

abra kadabra

Такое выражение находит все буквы a в тексте, сбоку список найденного (совпадений) и их позиции.

Теперь 2 буквы а, идущие подряд

aa

Ничего не найдено. Добавим в текст:

abra kadabra aa

Теперь совпадение найдено.

Пояснение про g и preg_match_all:

Теперь давайте используем функцию preg_match с этим регулярным выражением.

Проблема: онлайн-редактор находит все, моя функция находит только одну букву. Всё дело в модификаторе g который установлен по-умолчанию в онлайн-песочнице.

Но в PHP его нет, при попытке поставить будет ошибка unknown modifier. В этом случае нужно использовать preg_match_all

Теперь попробуем найти комбинацию "сначала буква потом цифра", например: a5

Текст:

abra kadabra aa5

Но если я поставлю a6 то он уже ничего не найдёт. Как же быть? Мне нужна любая буква или любая цифра? Об этом в следующей статье.

К сожалению, дзен не поддерживает подсветку синтаксиса кода (или я не нашёл где она) но в любом случае, вот видеорурок по этой статье: