Регулярные выражения

Слайд 2

Регулярные выражения

Регулярные выражения


Слайд 3

Регулярные выражения Если нам нужно просто узнать есть ли шаблон 'abc'

Регулярные выражения

Если нам нужно просто узнать есть ли шаблон 'abc' в

строке $string мы можем набросать такой код:


Слайд 4

Начало строки Теперь мы желаем узнать, начинается ли строка с 'abc'.

Начало строки

абс     echo 'The string begins with abc'; } else {     echo 'это фэйл'; } ?>

Теперь мы желаем узнать, начинается ли строка с 'abc'. Символ начала строки в регулярках - '^' (caret - знак вставки).

Пример выведет: The string begins with abc Оборачивающие слэши - разделители, содержат регуряное выражение. Это могут быть любые парные символы, например @regex@, #regex#, /regex/ и .т.п. Символ ^ сразу после первого разделителя указывает что выражение начинается сначала строки и НИКАК иначе.

Слайд 5

Что делать с регистром символов (строчные-прописные) Скрипт вернет: Не думаю Все

Что делать с регистром символов (строчные-прописные)


Скрипт вернет: Не думаю Все потому что

поиск регистро-зависимый. Шаблон 'abc' не тоже самое что 'ABC'. Чтобы найти оба варианта, нужно использовать модификатор. В регулярных выражениях для этого применяется модификатор 'i', который нужно указать за закрывающим разделителем регулярного выражения.
Слайд 6

Регулярные выражения Теперь скрипт найдет паттерн 'abc'. Также теперь будут попадать

Регулярные выражения


Теперь скрипт найдет

паттерн 'abc'. Также теперь будут попадать под шаблон строки вида abc, ABC, Abc, aBc, и т.п. Позже будет рассказано подробнее о модификаторах.
Слайд 7

Как указать в паттерне конец строки Делается это также как и

Как указать в паттерне конец строки

Делается это также как и в

случае с поиском начала строки. Распространенная ошибка, допускаемя многими прогерами - использование символа $ для указания конца строки в шаблоне. Это неверно, правильное решение - использовать утверждение \z. Посмотрите на этот код