#COFFEE регулярные выражения
http://www.php.su/lessons/?lesson_17
Допустим мы хотим проверить соответствует ли строка нашему шаблону. В качестве шаблона будем использовать регулярные выражения.
Для начала нам нужно понимать, где начинаются и где заканчиваются регулярные выражения. Для этого будем использовать символы ограничители.
/ /
Если нас интересует любой символ ставим .
/.../ - устроит любая строка из трех символов
то есть preg_match('/.../','абв') даст нам true
Если мы ищем строку из любых символов, то нам подойдет паттерн /.*/
* - любое количество повторений
Проблема состоит в том, что под .* подойдет строка без символов вообще.
Если нам нужно, чтобы был хотя бы один символ, то ставим +
preg_match('/.+/', 'абракадбра');
preg_match - проверяет соответствует ли данная строка паттерну
третий необязательный параметр matches - возвращает массив, содержащий найденную строку в нулевом элементе matches[0]. В последующих элементах содержатся подстроки, соответствующие подмаскам.
Подмаски нумеруются, начиная с единицы слева направо по открывающим скобкам
preg_match_all - находит все вхождения паттерна в строку
preg_split - разбивает строку на подстроки, используя для поиска разделителей паттерн
preg_replace - находит подстроки с помощью паттерна и заменяет их на строку-заготовку
preg_replace_callback - находит подстроки с помощью паттерна, передает их в функцию, указанную вторым параметром, и результат функции использует в качестве замены
preg_grep
preg_quote
Практика:
- Проверить есть ли в строке буква а
- Есть ли в строке две буквы а подряд
- Если в строке две буквы а
- Есть ли в строке ровно две буквы а
- Найти вхождение в строку упоминание времени, например 12:57 . Вывести на экран отдельно количество часов, отдельно количество минут
- Выбрать строки, которые не содержат три x подряд
- Проверить является ли строка номером телефона
- Проверить является ли строка емейлом
- Разбить предложение на слова
- Убрать лишние пробелы из строки
- Сделать транслитерацию
- Вывести все слова содержащие буквы k либо две буквы l
- Перевести все буквы к нижнему регистру
- Заменить в строке числа на квадраты чисел
- Узнать есть ли в строке повторяющееся слово