php regex取代结果

时间:2013-11-19 22:33:53

标签: php regex

我想运行一个css文件并替换一些值。 我希望替换只能在大括号内进行。

例如让我们说下一个css:

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

我希望用蓝色替换所有红色值。

我曾尝试使用下一个代码:

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

但结果在哪里: .redcolorblue我希望它只用红色代替红色,如果它用括号并避开它周围的图案...... 预期的结果应该是:

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

这只是我想要做的一个例子,我想改变css文件本身,并在其中更改很多值。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

试试这个:

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

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

http://php.net/preg_replace

中的更多详情