例如,我想替换: margin:0px;
这margin:0;
是我想出的正则表达式:$data = preg_replace('/([^\d])0px/', '$1 0', $data);
$1
在本例中将代表:
。
现在我如何$1
与一个数字组合而不用 php 将其解释为另一个捕获组变量并且不使用我上面所做的空格?
例如,我想替换: margin:0px;
这margin:0;
是我想出的正则表达式:$data = preg_replace('/([^\d])0px/', '$1 0', $data);
$1
在本例中将代表:
。
现在我如何$1
与一个数字组合而不用 php 将其解释为另一个捕获组变量并且不使用我上面所做的空格?
你想做这样的事情吗?
<?php
function replace_px($val, $new_val, $str) {
return $new_str = str_replace($val . "px", $new_val, $str);
}
$str = "margin:0px;";
echo replace_px(0, 0, $str);
?>
// 输出
margin:0;
您可以使用'${1}0'
. 有关更多信息,请参阅有关字符串的 PHP 文档。
该preg_replace
文档也讨论了这一点。
顺便说一句,您可以改用这个正则表达式(在 5.2.4 及更高版本中):
$data = preg_replace('/\D0\Kpx/', '', $data);
\D
匹配任何不是数字的东西,相当于[^\d]
.
\K
要求匹配它之前的所有内容,但将其排除在匹配本身之外。因此,您不必存储模式的第一部分并将其包含在替换中。