Как говорится, программист хотел решить проблему с помощью регулярных выражений, теперь у него 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 то он уже ничего не найдёт. Как же быть? Мне нужна любая буква или любая цифра? Об этом в следующей статье.
К сожалению, дзен не поддерживает подсветку синтаксиса кода (или я не нашёл где она) но в любом случае, вот видеорурок по этой статье: