есть регулярка Код (PHP): \s(?![^}]*\{) и есть текст Проблема в том что матчится и пробел за последней фигурной скобкой Мне нужно заменить все пробелы внутри фигурных скобок на нижнее подчеркивание Как избавится от пробелов за последней фигурной скобкой? Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделать? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т.д.
я бы сделал в два этапа. матчим все что внутри фигурных скобок /\{[^}]+\}/ и уже внутри этого заменяем все пробелы на нижнее подчеркивание
Код (PHP): $str='82. Kc3 {[%clk 0:01:29]} Bb5 {[%clk 0:03:11]} 0-1'; $m=array(); preg_match_all('/\{[^}]+\}/',$str,$m); foreach($m[0] as $key => $value) { $m[0][$key]=str_replace(' ','_',$value); } $m=$m[0]; print_r($m); В противном случае использовать preg_replace, для замены много пробелов на один или сразу на " _ ". Код (PHP): preg_replace('/\s+/','_',$value);