Показать сообщение отдельно

  #3  
Старый 20.03.2007, 11:52
Talisman
Постоянный
Регистрация: 22.04.2006
Сообщений: 566
Провел на форуме:
1325772

Репутация: 517


Отправить сообщение для Talisman с помощью ICQ
По умолчанию

Элементарные действия

Является ли строка числом, длиной до 77 цифр:

PHP код:
 if(ereg("^ // отрицание
[0-9] // цифры
{1,77} // квантификатор повтора предыдущего элемента (цифр) от 1 до 77 раз
$"
,$string)) echo "yes"; else echo "no"
Состоит ли строка только из букв, цифр и "_", длиной от 5 до 20 символов:
PHP код:
 if (ereg("^ //отрицание
[a-zа-я0-9_] // цифры, буквы русские, англ (строчные), и подчеркивание
{5,20} // повторяются не менее 5 и не более 20 раз
$"
,$string)) echo "yes"; else echo "no"
Есть ли в строке любые символы, кроме допустимых. Допустимыми считаются буквы, цифры и "_". Длину тут проверять нельзя, разве что просто дополнительным условием strlen($string). Не путайте с предыдущим примером - хоть результат и одинаковый, но метод другой, "от противного"
PHP код:
if ( ! ereg("[^a-zа-я0-9_]",$string))
   echo 
"нет посторонних букв (OK)";
else
   echo 
"есть посторонние буквы (FALSE)"
Для регистро независимого сравнения используйте eregi().
Есть ли в строке идущие подряд символы, не менее 3-х символов подряд (типа "абвгДДДеё", но не "ааббаабб"):

PHP код:
if (preg_match("/(.)\\1\\1/",$string)) echo "yes"; else echo "no"
Заменить везде в тексте СТРОКУ1 на СТРОКУ2 (задача решается без регегулярных выражений):

PHP код:
$string=str_replace("СТРОКА1","СТРОКА2",$string); 
Заменить кривые коды перехода строки на нормальные: для этого нужно только удалить "\r". Переходы бывают нормальными (но разными!): "\n" или "\r\n". Еще бывают глюки, типа "\r\r\n".

PHP код:
$string=str_replace("\r","",$string); 
Заменить все повторяющиеся пробелы на один. Не пытайтесь здесь применить str_replace, это хорошая функция, но не для данного примера.

PHP код:
$string=preg_replace("/ХХ+/","Х",$string); // вместо Х поставьте пробел 
В тексте есть некоторые слова, допустим "СЛОВО" и "ЛЯЛЯЛЯ" (и т.д.), которые нужно одинаковым образом заменить на тоже самое, но с добавками. Возможно, слова отсутствуют или встречаются много раз в любом регистре. Т.е. если было "слово" или "СлОвО" (или еще как), нужно заменить это на "<b>слово</b>" или "<b>СлОвО</b>" (смотря, как было). Другими словами нужно найти перечень слов в любом регистре и вставить по краям найленных слов фиксированные строки (на "<b>" и "</b>").
PHP код:
$string=preg_replace("/(слово1|слово2|ляляля|слово99)/si","<b>\\1</b>",$string);
// то, что в скобках, заносится потом в \\1
// вертикальная черта означает или :)
// остальное вроде все понятно 
Найти текст, заключенный в какой-то тег, например <TITLE> ... </TITLE> из HTML-файла ($string - исходный текст).

PHP код:
//точка - все кроме пробела, ну и много раз повторяется)
if (preg_match("!<title>(.*?)</title>!si",$string,$ok))
   echo 
"Тег найден, текст: $ok[1]";
else
   echo 
"Тег не найден"
Найти текст, заключенный в какой-то тег и заменить его на другой тег, например: <TITLE> ... </TITLE> заменить аналогично на <МОЙ_ТЕГ> ... </МОЙ_ТЕГ> в HTML-файле:
PHP код:
 preg_replace("!<title>(.*?)</title>!si","<МОЙ_ТЕГ>\\1</МОЙ_ТЕГ>",$string);