#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

Практика:

  1. Проверить есть ли в строке буква а
  2. Есть ли в строке две буквы а подряд
  3. Если в строке две буквы а
  4. Есть ли в строке ровно две буквы а
  5. Найти вхождение в строку упоминание времени, например 12:57 . Вывести на экран отдельно количество часов, отдельно количество минут
  6. Выбрать строки, которые не содержат три x подряд
  7. Проверить является ли строка номером телефона
  8. Проверить является ли строка емейлом
  9. Разбить предложение на слова
  10. Убрать лишние пробелы из строки
  11. Сделать транслитерацию
  12. Вывести все слова содержащие буквы k либо две буквы l
  13. Перевести все буквы к нижнему регистру
  14. Заменить в строке числа на квадраты чисел
  15. Узнать есть ли в строке повторяющееся слово

results matching ""

    No results matching ""