Содержание
В регулярных выражениях есть функции поиска, поиска и замены, разделения на части. Эта статья поможет тем, кто хочет научиться брать любой контент со страницы и преобразовывать его, как угодно. Т.е. парсить уникальный контент с сайтов.
Функции поиска
- 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 — там собрано огромное количество готовых регулярных выражений на все случаи жизни.