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

NOIP

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

Nei

Nosce te ipsum
Команда форума
Модератор
Регистрация
5 Сен 2009
Сообщения
688
Реакции
603
PHP:
$string=preg_replace('/\((.+?)\)/i','', $string);
 

latteo

Эффективное использование PHP, MySQL
Регистрация
27 Фев 2008
Сообщения
1.603
Реакции
1.565
PHP:
$string=preg_replace('/\((.+?)\)/i','', $string);
Хорошо, только вложенные скобки или смайлики сломают:
PHP:
$string="какой-то текст (бидон :) -15) продолжение (какого то) текста....";
$string=preg_replace('/\((.+?)\)/i','', $string);
var_dump(    $string    );

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

Nei

Nosce te ipsum
Команда форума
Модератор
Регистрация
5 Сен 2009
Сообщения
688
Реакции
603
Хорошо, только вложенные скобки или смайлики сломают:
PHP:
$string="какой-то текст (бидон :) -15) продолжение (какого то) текста....";
$string=preg_replace('/\((.+?)\)/i','', $string);
var_dump(    $string    );

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

Да, согласен, но я минимальный рабочий вариант предоставил, учитывая задачу. Можно конечно более универсальное решение придумать, но как минимум неясно нужно ли оно или предоставленного варианта хватит :)
 

kreg1g

Писатель
Регистрация
6 Июн 2012
Сообщения
6
Реакции
2
Код:
$re = '/(.+)\((.+)\)(.+)/i';
$str = 'какой-то текст (бидон ;) -15) продолжение какого то текста....';
preg_match($re, $str, $matches);
echo $matches[1].$matches[3];
 
Сверху