我在 RegEx 方面获得了一些帮助,但不确定我做错了什么。我想要实现的是更改 CSS 文件中一个 CSS 属性的值,而不更改该 CSS 文件中的任何内容。
<?php
$var = '
#css {
text-size: 14px;
color: red;
background: orange;
}
';
echo preg_replace('/#css(.*)color: (.*);(.*)}/is','#css$1color: black;$3 }',$var);
?>
我希望看到的结果是这样的:
#css {
text-size: 14px;
color: red;
background: orange;
}
然而我得到的是:
#css {
text-size: 14px;
color: black;
}
我根本不是 RegEx 方面的专家,但是在阅读了在线手册和示例之后,我认为我可以使用反向引用来做到这一点,并且第一场比赛的结果是 1 美元,第二场比赛的 2 美元,第三场比赛的 3 美元等等......在我的示例中,$1 匹配 '#css' 和 'color:' 之间的所有内容,然后我不使用 $2,因为我想将 'red' 替换为 'black'。我认为 3 美元将是 ';' 之间的所有结果 和 '}' 但它在某个地方迷路了,或者更可能的是,我在某个地方迷路了 ;-)
感谢您的建议和支持。