RegExp в PHP
Регулярные выражения в PHP.
PHP поддерживает два стиля синтаксиса регулярных выражений Что такое POSIX и perl. Стиль POSIX встроен в PHP по умолчанию, а стиль Perl доступен после компиляции с библиотекой PCRE библиотека регулярных выражений.
PHP PCRE
В PHP для работы с регулярными выражениями PCRE библиотека регулярных выражений используются несколько функций.
preg_match
php.net: preg_match прекращает свою работу после первого найденного совпадения. Если необходимо найти, либо сосчитать все совпадения, следует воспользоваться функцией preg_match_all.
int preg_match ( string pattern, string subject [, array matches [, int flags]])
preg_match() возвращает FALSE в случае, если во время выполнения возникли какие-либо ошибки. В случае, если дополнительный параметр matches указан, он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] – часть строки, соответствующую первой подмаске(то что находится внутри шаблона).
- Пример. В HTML тексте находится одна таблица. Ее нужно вырезать в двух вариантах, первый с тегами <table></table>($matches[0]), второе только текст содержащийся между тегами <table></table>($matches[1]). Ниже приведенный пример можно использовать для обработки любых тегов.
<?php /* * Обработка результата вывода утилиты ipcalc. Ключ -h позволяет получить результат в HTML. */ $IPs = '10.26.95.0/24'; $escaped_IPs = 'ipcalc -h '.escapeshellcmd($IPs); $output = shell_exec($escaped_IPs); preg_match('|<table(.*)</table>|Uis', $output, $matches); print_r($matches[0]); // результат с тегами <table></table>. Весь шаблон. print_r($matches[1]); // результат содержимое тегов <table></table>. ?>
- Извлекаем имя хоста и протокол из URL
preg_match('@^(?:https?://)?([^/]+)@i', $usr1, $matches); print_r($matches[0]);
preg_match_all
preg_match_all
int preg_match_all(string pattern, string subject, array matches [, int flags [, int offset]])
Функция работает также, как и preg_match, но ищет не только первое вхождение, а все имеющиеся и складывает их в массив matches, который для данной функции (в отличие от preg_match()) является обязательным.
preg_replace
preg_replace - выполняет поиск и замену по регулярному выражению. Выполняет поиск в строке subject совпадений с шаблоном pattern и заменяет их на replacement. В случае, если параметр limit указан, будет произведена замена limit вхождений шаблона.
mixed preg_replace(mixed pattern, mixed replacement, mixed subject [, int limit])
- Пример. Чистка пробелов.
<?php $str = 'foo o'; echo $str."\n"; $str = preg_replace('/\s\s+/', '', $str); echo $str."\n"; ?>
- Пример. Удаление всех символов "-".
<?php $str = '2012-04-05'; echo $str."\n"; $str = preg_replace('/-/', '', $str); echo $str."\n"; ?>
PHP POSIX
В PHP существует две функции для поиска строк при помощи регулярных выражений ereg() и eregi(). Единственное отличие между ними функция eregi() нечувствительна к регистру.
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах