2012-09-19 108 views
-2

我似乎无法找到一个正则表达式来执行以下操作。PHP/Regex。替换' 如果在()内

我需要用 代替(空格),但只有在括号内。

E.g.

hello test('test some more') ; 

有待

hello test('test some more') ; 

任何帮助将是巨大的:)

+0

你会走错方向。 – lanzz

+0

嗨Lanzz,你是什么意思?做这件事的原因非常独特。 – Atrox1449

回答

1

当然,从技术上可以与正则表达式来完成:

$str = "hello test('test some more again') dads dasds ('and some more');"; 

$str = preg_replace('#(?<=\()([^)]+?) | (?=[^()]*\))#', '$1&nbsp;', $str); 
var_dump($str); 

换句话说,我们在此替换前面为(但不是(...)的空白,或者跟随OR通过),但是,再次,不是(...)

问题是,你是否应该防范嵌套括号。

+0

完美,谢谢。 – Atrox1449