
Регулярные выражения мощный инструмент разработки. При первом знакомстве создается впечатление что с регулярными выражениями работать непросто и все довольно запутанно, но перейдем к основам.
Основы синтаксиса регулярных выражений
| Регулярное выражение | Означает |
| text | Строка “text” |
| ^text | Строка начинается с “text” |
| text$ | Строка заканчивается на “text” |
| ^text$ | «text» встречается в строке только один раз |
| [abc] | a, b, или c |
| [a-z] | любой символ (латиница) в нижнем регистре |
| [^A-Z] | любой символ (латиница), не находящийся в верхнем регистре |
| (gif|jpg) | Означает как «gif” так и “jpeg” |
| [a-z]+ | Один или более символов нижнего регистра |
| [0-9.-] | Любая цифра, точка или знак минус |
| ^[a-zA-Z0-9_]{1,}$ | Любое слово, хотя бы одна буква, число или _ |
| ([wx])([yz]) | wy, wz, xy, или xz |
| (^A-Za-z0-9) | Любой символ (не число и не буква) |
| ([A-Z]{8}|[0-9]{6}) | Означает восемь букв или 6 цифр |
Функции php для работы с регулярными выражениями
| Функция | Описание |
| preg_match() | Функция preg_match() ищет строку по заданному шаблону, возвращает true, если строка находится и false, в остальных случаях |
| preg_match_all() | Функция preg_match_all() находит все вхождения строки, заданной по шаблону |
| preg_replace() | Функция preg_replace(), действует по тому же принципу, что и ereg_replace(), за исключением того, что регулярные выражения можно использовать как для задания шаблона поиска, так и для строки, на которую следует заменить, найденное значение. |
| preg_split() | Функция preg_split(), действует так же как split(), за исключением того, что регулярное выражение можно использовать в качестве параметра для шаблона поиска. |
| preg_grep() | Функция preg_grep() ищет все элементы входного массива, возвращая все элементы, соответствующие шаблону регулярного выражения. |
| preg_quote() | Экранирует символы регулярного выражения |
Полезные регулярные выражения
Проверка правильности домена регулярным выражением
$url = «http://sampledomain.com/»;
if (preg_match(‘/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i’, $url)) {
echo «Your url is ok.»;
} else {
echo «Wrong url.»;
}
Подсвечиваем слово в тексте
$text = «Sample word»;
$text = preg_replace(«/b(regex)b/i», ‘<span style=»background:red»>1</span>’, $text);
echo $text;
Заменить два пробела одним
$str = preg_replace(‘/ +/’, ‘+’, $str);