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

php正则表达式在结果中替换,php,regex,Php,Regex,我想运行一个css文件并替换一些值。 我希望更换只发生在支架内 例如假设我们有下一个css: .redColor{color:red;padding right:45px;/*等…*/} 我想用蓝色替换所有的红色值 我尝试使用下一个代码: preg_replace(“/{(.*)红色(.*)}/”、“蓝色”、$cssString) 但结果是: .redcolorblue我希望它只替换红色,如果它带有大括号,并避免周围的图案。。。 预期结果应该是: .redColor{color:blue;pad

我想运行一个css文件并替换一些值。 我希望更换只发生在支架内

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

.redColor{color:red;padding right:45px;/*等…*/}

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

我尝试使用下一个代码:

preg_replace(“/{(.*)红色(.*)}/”、“蓝色”、$cssString)

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

.redColor{color:blue;padding right:45px;/*等…*/}

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

一些澄清 我想在CSS文件中执行此替换,因此我将整个文件加载到一个变量中并执行替换,因此仅替换一个值的解决方案不是我想要的

preg_replace("/({.*)red(.*})/","${1}blue${2}",$cssString);
通过使用括号,将保存匹配字符串,并可在替换字符串中引用为
$1


更多详细信息请参见

是的,我知道,这只是一个示例…-)您可能会发现使用正则表达式更容易提取“块”(块中的块),在该块上进行替换,然后用新的块替换旧的块。您可能需要考虑PHP CSS PARSER。谢谢,但这不起作用,顺便说一下,括号也被删除了,“/s”的含义是什么???
/s
使点
匹配换行符
preg_replace('/(\{.*?)red(.*?\})/s', '$1blue$2', $cssString);