Получить содержимое из строки пропуская содержимое в скобках, как?

NOIP

Гуру форума
Регистрация
17 Фев 2008
Сообщения
327
Реакции
77
Доброго времени суток, есть код
PHP:
<?
$string="какой-то текст (бидон-15) продолжение какого то текста....";
preg_match('/\((.+?)\)/i', $string, $matches, PREG_OFFSET_CAPTURE);
//print_r($matches);
print $matches[1][0];
?>
Достает содержимое в скобках, а как получить содержимое string без содержимого в скобках? что бы в конце получилось так
какой-то текст продолжение какого то текста....
 
PHP:
$string=preg_replace('/\((.+?)\)/i','', $string);
 
PHP:
$string=preg_replace('/\((.+?)\)/i','', $string);
Хорошо, только вложенные скобки или смайлики сломают:
PHP:
$string="какой-то текст (бидон :) -15) продолжение (какого то) текста....";
$string=preg_replace('/\((.+?)\)/i','', $string);
var_dump(    $string    );

И просто убрать "?" увеличивая жадность квантификаторов не получится - тогда будет удалятся больше чем надо.
 
Хорошо, только вложенные скобки или смайлики сломают:
PHP:
$string="какой-то текст (бидон :) -15) продолжение (какого то) текста....";
$string=preg_replace('/\((.+?)\)/i','', $string);
var_dump(    $string    );

И просто убрать "?" увеличивая жадность квантификаторов не получится - тогда будет удалятся больше чем надо.

Да, согласен, но я минимальный рабочий вариант предоставил, учитывая задачу. Можно конечно более универсальное решение придумать, но как минимум неясно нужно ли оно или предоставленного варианта хватит :)
 
Код:
$re = '/(.+)\((.+)\)(.+)/i';
$str = 'какой-то текст (бидон ;) -15) продолжение какого то текста....';
preg_match($re, $str, $matches);
echo $matches[1].$matches[3];
 
Назад
Сверху