php正则表达式在结果中替换


php regex replace within results

我想在css文件上运行并替换一些值。我希望更换只能在支架内进行。

例如假设我们有下一个css:

.redColor{color:red;padding-right:45px;/*etc....*/}

我想用蓝色替换所有的红色值。

我试着使用下一个代码:

preg_replace("/{(.*)red(.*)}/","blue",$cssString)

但是结果是:.redcolorblue我希望它只替换红色,如果它在大括号内,并避免它周围的图案。。。预期结果应该是:

.redColor{color:blue ;padding-right:45px;/*etc....*/}

这只是我尝试做的一个例子,我想更改css文件本身,并更改其中的许多值

一些澄清我想在CSS文件中进行替换,所以我将整个文件加载到一个变量中并进行替换,因此只替换一个值的解决方案不是我所寻找的

preg_replace('/('{.*?)red(.*?'})/s', '$1blue$2', $cssString);

试试这个:

preg_replace("/({.*)red(.*})/","${1}blue${2}",$cssString);

通过使用括号,匹配字符串被保存,并且可以在替换字符串中被引用为$1

中的更多详细信息http://php.net/preg_replace