div.main {margin-left: 20pt; margin-right: 20pt}
Несколько примеров на регулярные выражения.
Полезные ссылки:
Как изучить регулярные выражения и что это такое?
Подсветка URL в тексте
Найти все слова в тексте
Элементарные действия
Является ли строка числом, длиной до 77 цифр:
if (ereg("^[0-9]{77}$",$string)) echo "yes"; else echo "no";
|
Состоит ли строка только из букв, цифр и "_", длиной от 5 до 20 символов:
if (ereg("^[a-za-я0-9_]{5,20}$",$string)) echo "yes"; else echo "no";
|
Есть ли в строке любые символы, кроме допустимых. Допустимыми считаются
буквы, цифры и "_". Длину тут проверять нельзя,
разве что просто дополнительным условием strlen($string). Не путайте с предыдущим
примером - хоть результат и одинаковый, но метод другой, "от противного"
:)
if ( ! ereg("[^a-za-я0-9_]",$string))
echo "нет посторонних букв (OK)";
else
echo "есть посторонние буквы (FALSE)";
|
Есть ли в строке идущие подряд символы, не менее 3-х символов
подряд (типа "абвгДДДеё", но не "ааббаабб"):
if (preg_match("/(.)\1\1/",$string)) echo "yes"; else echo "no";
|
Заменить везде в тексте СТРОКУ1 на СТРОКУ2 (задача решается без регегулярных
выражений):
$string=str_replace("СТРОКА1","СТРОКА2",$string);
|
Заменить кривые коды перехода строки на нормальные: для
этого нужно только удалить "r". Переходы бывают нормальными (но разными!):
"n" или "rn". Еще бывают глюки, типа "rrn".
$string=str_replace("r","",$string);
|
Заменить все повторяющиеся пробелы на один.
Не пытайтесь здесь применить str_replace, это хорошая функция, но не
для данного примера.
$string=preg_replace("/ХХ+/","Х",$string); // вместо Х поставьте пробел
|
В тексте есть некоторые слова, допустим "СЛОВО" и "ЛЯЛЯЛЯ" (и т.д.),
которые нужно одинаковым образом заменить на тоже самое, но
с добавками. Возможно, слова отсутствуют или встречаются много раз
в любом регистре.
Т.е. если было "слово" или "СлОвО" (или еще как),
нужно заменить это на "<b>слово</b>" или "<b>СлОвО</b>" (смотря, как было).
Другими словами нужно найти перечень слов в любом регистре и вставить
по краям найленных слов фиксированные строки (на "<b>" и "</b>").
$string=preg_replace("/(слово1|слово2|ляляля|слово99)/si","\1",$string);
|
Найти текст, заключенный в какой-то тег, например
<TITLE> ... </TITLE>
из HTML-файла ($string -
исходный текст).
if (preg_match("!(.*?)!si",$string,$ok))
echo "Тег найден, текст: $ok[1]";
else
echo "Тег не найден";
|
Найти текст, заключенный в какой-то тег и заменить его на
другой тег, например:
<TITLE> ... </TITLE>
заменить аналогично на
<МОЙ_ТЕГ> ... </МОЙ_ТЕГ>
в HTML-файле:
preg_replace("!(.*?)!si","\1",$string);
|
Подсветка PHP-кода в сообщениях
К примеру, у вас есть форум типа vBulletin, где можно подсвечивать код,
если его выделить специально: [PHP] любой код [/PHP].
В итоге, после этого (при просмотре сообщения), получается
красивый и цветной php-код.
И так, если вы хотите, чтобы все куски между
[PHP]..[/PHP] и
<?..?>
воспринимались как код и раскрашивались, то это можно сделать
довольно легко.
Текст программы.
|
|
|