Найти тему
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 с этим регулярным выражением.

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

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

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

Текст:

abra kadabra aa5

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

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