繁体   English   中英

PHP正则表达式将捕获组变量与数字结合在一起

[英]PHP regex combine capturing group variable with a number

例如,我要替换: margin:0px; margin:0;
这是我想出的正则表达式: $data = preg_replace('/([^\\d])0px/', '$1 0', $data);

在此示例中, $1代表:

现在如何在不将php解释为另一个捕获组变量且不像上面那样使用空格的情况下将$1与一个数字组合?

您可以使用'${1}0' 有关更多信息,请参见有关字符串的PHP文档

preg_replace文档也对此进行了讨论。

顺便说一句,您可以改用此正则表达式(在5.2.4及更高版本中):

$data = preg_replace('/\D0\Kpx/', '', $data);

\\D匹配等于[^\\d]不是数字的任何内容。

\\K要求匹配之前的所有内容,但将其排除在匹配之外。 因此,您不必存储模式的第一部分并将其包括在替换中。

这是有关转义序列的文档

您是否正在尝试做这样的事情?

<?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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM