$val = '<span>Hello World</span>';
echo preg_replace('/<(.+?)>(.+?)<\/(.+?)>/', "$1 $2 $3", $val);
返回:
span Hello World span
是否有可能更换第二组?第二组是Hello World
但它可以是任何东西,因为它是一个动态值。我想要的是用_
替换所有空格。
我想在没有任何其他PHP功能的情况下这样做。所以它应该只是RegEx。
答案 0 :(得分:1)
这将是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);