Регулярные выражения « Обрамление тегом группы символов с условием

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

любой-текст (с указанием любой-текст
любой-текст и к которым любой-текст
любой-текст (<i><b>также</b></i>). любой-текст

(т.е., на месте оформленного полужирным с подчёркиванием, хотелось бы получить:

любой-текст <nobr>(с&nbsp;указанием</nobr> любой-текст
любой-текст <nobr>и&nbsp;к&nbsp;которым</nobr> любой-текст
любой-текст <nobr>(<i><b>также</b></i>).</nobr> любой-текст
)

при этом игнорируя содержимое угловых скобок, например:

<p class="p1">В&nbsp;Путеводителе любой-текст

(т.е.:

<p class="p1"><nobr>В&nbsp;Путеводителе</nobr> любой-текст
)

1 ответов


Первым выражением отбираешь всё что содержится в скобках и заменяешь временными placeholder'ами на подобие %temp_value_1000348%, потом делаешь что нужно и заменяешь ключи из массива на переменные через foreach так как обычный repace работает быстрее регулярок.

foreach ( $values as $key => $value ) $parsed = str_replace($key, $value, $parsed);