繁体   English   中英

替换字符串时替换组

[英]Replacing a group while replacing a string

$val = '<span>Hello World</span>';
echo preg_replace('/<(.+?)>(.+?)<\/(.+?)>/', "$1 $2 $3", $val);

返回:

跨度Hello World跨度

是否可以替换第二组? 第二组是“ Hello World但可以是任何值,因为它是动态值。 我想要的是用_替换所有空格。

我想在没有任何其他PHP函数的情况下进行操作。 因此,它应该仅是RegEx。

这对于preg_replace_callback是一个很好的选择。

$value = '<span>Hello World</span>';

echo preg_replace_callback('/<(.+?)>(.+?)<\/(.+?)>/', function (array $matches) {
    $matches[2] = str_replace(' ', '_', $matches[2]);
    return "{$matches[1]} {$matches[2]} {$matches[3]}";
}, $value);

暂无
暂无

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

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