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

Функции в регулярных выражениях

В регулярных выражениях есть функции поиска, поиска и замены, разделения на части. Эта статья поможет тем, кто хочет научиться брать любой контент со страницы и преобразовывать его, как угодно. Т.е. парсить уникальный контент с сайтов.

Функции поиска

  • preg_match() и preg_match_all() — выполняет поиск того, что мы ищем. Возвращает true или false, т.е. совпало — не совпало. Вторая функция выполняет поиск всех совпадений вообще (в отличие от первой функции).
$txt = file_get_contents('http://www.w3.org/TR/CSS21');
$txt = html_entity_decode($txt);
/<(?P<email>([a-z.]+).?@[a-z0-9]+\.[a-z]{1-6})>/Ui
  • preg_ grep($pattern, $array) — редкоиспользуемая функция, вместо строки туда можно послать массив.

Функции замены

  • preg_replace ($pattern, $replacement, $str) — параметры функции: шаблон.

функции

  • preg_replace_callback ($pattern, $str_format, $names) — параметры функции: шаблон для поиска, str_format и массив, куда все приходит.

функции

Функция разделения на части

  • preg_split ($pattern, $string) — параметры функции: шаблон, согласно которому будем разрезать на части; сама строка, которую будем резать.
$str = 'This is an example for preg_split().'; //у нас есть строка
//пример 1
$words = preg_split('/[\W]+/', $str); count($words);// выдаст 7, т.е. 7 элементов массива
//пример 2
$words = preg_split('/[\W]+/', $str, 2); count($words);// 2, т.к.третьим параметром ограничили количество элементов
//пример 3
$words = preg_split('/[\W]+/', $str, -1, PREG_SPLIT_NO_EMPTY); count($words);// 6

В последнем примере использовали константу PREG_SPLIT_NO_EMPTY. Она не разрезает на части ‘пустышки’ (точка, запятая, перевод строки, т.е. некоторые знаки пропускаются и не идут как отдельные части после разрезки строки).

Для тренировки работы с регулярными выражениями, для ‘набивки руки’ советую посетить сайт http://regexplib.com — там собрано огромное количество готовых регулярных выражений на все случаи жизни.




Добавить комментарий

Ваш e-mail не будет опубликован.