регулярное выражение

seeker

Guest
регулярное выражение

помогите составить регулярное выражение.
требуется удалить строки вида:
[:img src="#5" align=right]
где 5 = $id

пробовал так:
$pattern = '/\[:img\s+?src="#'.$id.'"\s+?align=(.+?)\s*?\]/i';
$subject = preg_replace($pattern, "", $subject);
 

Nimous

Guest
str_replace($id, "",$string); --Это если ID нужно удалить;

если всю строку -if(strstr(...))
 

seeker

Guest
Автор оригинала: Nimous
str_replace($id, "",$string);
убрать надо не только 5, убрать надо целиком строку [:img src="#5" align=right] где 5 - не всегда 5, а иногда 8, 9, или даже 10, а пробелов между словами не всегда по одному.
 

netdog

net @
у меня почему-то всё работает, причем твой вариант
PHP:
 <?php
$str = '[:img src="#5" align=right] [:img src="#4" align=right] [:img src="#1" align=right]';
$id = '1';
$pattern = '/\[:img\s+?src="#'.$id.'"\s+?align=(.+?)\s*?\]/si';
$str = preg_replace($pattern, "", $str);
echo $str;
?>
 

seeker

Guest
Автор оригинала: Net Dog
у меня почему-то всё работает, причем твой вариант
?>[/php]
тот что ты написал у меня тоже работает.
наверное гдето в другом месте ошибка, или вмешались потусторонние силы :confused:
 

gfd

Guest
seeker

Ты для каждого возможного $id собираешься replace прогонять?

PHP:
$pattern = '/\[:img\s+?src="#\d+"\s+?align=(.+?)\s*?\]/si';
 

gfd

Guest
Тогда не обращай внимания на то, что я написал :)
 

seeker

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

вспылил, был не прав, всё дело в stripslashes
 
Сверху