Под регулярными выражениями понимают некоторые шаблоны, которые позволяют найти последовательности символов в текстах (в обычных или в файлах) и, при необходимости, заменить их на другие.
Самая простая задача, которая требует использования регулярных выражений - поиск последовательности букв в слове (имени пользователей при регистрации, написания домена), если мы хотим запретить некоторые слова. Для поиска слов, выражений, проще всего использовать функцию preg_match(), которая возвращает true или false:
if( preg_match('!ucoz.ru!', $_POST['domain']) ){ echo 'Найдено'; }
Одна из задач, которая встает перед разработчиком скриптов PHP - замена некоторого участка текста на другой.
Например, мы ввели свой тэг для выделения информации, чтобы "на лету" менять на нужный текст, который может зависеть от ряда условий (авторизован ли пользователь и т.п.). Для этого нужен простенький код на PHP и короткое регулярное выражение.
$test = '<b>текст до</b> <teg>Какой-то текст</teg> <i>текст после</i> ';
echo $test = preg_replace('!<teg>(.*)</teg>!iU','bla-bla-bla \\1 new bla-bla-bla',$test);
Итак, функция preg_replace() требует:
шаблон, который описывает искомый текст
на что его заменить
исходный текст (тот, который и может содержать искомый текст).
Мы составили шаблон <teg>(.*)</teg>, который заключен в кавычки и обязательную пару символов (здесь выбран знак !, можно |, или /, или # ...). После второго экранирующего символа перед закрывающей кавычкой идут спецальные модификаторы: iU. Буква i позволяет делать шаблон регистронезависимым, а U - "нежадным".
Последовательность \\1 подставляет найденный фрагмент (это может быть не только слово), т.е. то, что мы обозначили в шаблоне (.*), в исходном тексте.
Примеры некоторых регулярных выражений
[a-zA-z]* - соответствует буквенным символам латиницы
[0-9]* - соответствует цифровым символам
[a-zA-zа-яА-я,\.;]* - можно просто перечислить нужные символы, не забывая экранировать слэшем \ спецсимволы (. сам слэш \ ? скобки ...)
[^0-9]* - знак ^ позволяет исключить символы
Copyright © 2009 "Программирование на PHP для начинающих"