Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удалить слова по шаблону
 
 автор: Владимир22   (08.06.2011 в 11:50)   письмо автору
 
 

Есть строка, в которой надо удалить слова по шаблону. Слов (и фраз) тысячи и всё разное, но шаблон один.
Как удалить, например из строки ниже всё, что =X c последующей разделительной палочкой, если известно второе слово X .
Делал в том числе так:

$slovo="мир"; 
$stroka="|дети=любовь|слова=мир|star=небо|дела и жизнь=счастье|небо=красота|люди=мир|города=страны|цветы=растения|в красках=мир|солнце=красота|счастье=мир|";
$stroka_new=preg_replace("/[a-Z]*=$slovo+|/","",stroka);
echo  $stroka_new;

Не удаляет :(

  Ответить  
 
 автор: Ильдар   (08.06.2011 в 12:37)   письмо автору
 
   для: Владимир22   (08.06.2011 в 11:50)
 

подправил регулярку

<?
$slovo
="мир";  
$stroka="|дети=любовь|слова=мир|star=небо|дела и жизнь=счастье|небо=красота|люди=мир|города=страны|цветы=растения|в красках=мир|солнце=красота|счастье=мир|"
$stroka_new=preg_replace("/[а-я\s]+=$slovo\|/","",$stroka); 
echo  
$stroka_new;
?>

  Ответить  
 
 автор: cheops   (08.06.2011 в 13:16)   письмо автору
 
   для: Ильдар   (08.06.2011 в 12:37)
 

Добавлю лишь, что переменную $slovo, которая подставляется в регулярное выражение стоит пропустить через функцию preg_quote().

  Ответить  
 
 автор: Ильдар   (08.06.2011 в 13:21)   письмо автору
 
   для: cheops   (08.06.2011 в 13:16)
 

почему?

  Ответить  
 
 автор: cheops   (08.06.2011 в 13:33)   письмо автору
 
   для: Ильдар   (08.06.2011 в 13:21)
 

Ну мало ли, точки встретятся или какие-то другие спец.символы, которые нужно будет сохранить.

  Ответить  
 
 автор: Владимир22   (08.06.2011 в 15:42)   письмо автору
 
   для: cheops   (08.06.2011 в 13:33)
 

Всем спасибо!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования