Php 使用Preg_Replace保留删除的值
我使用preg_replace从字符串中删除一些内容。我想知道的是,是否有一种方法可以将被删除的内容保存在另一个变量中。以下是我正在使用的:Php 使用Preg_Replace保留删除的值,php,preg-replace,Php,Preg Replace,我使用preg_replace从字符串中删除一些内容。我想知道的是,是否有一种方法可以将被删除的内容保存在另一个变量中。以下是我正在使用的: $city = preg_replace('/^([0-9]* \w+ )?(.*)$/', '$2', $content[2]); 首先运行preg_match()以获取将被替换的内容,然后按原样替换内容。首先使用preg_match_all()获取字符串中的所有匹配项,然后运行preg_replace()以进行实际替换。在回调中替换变量之前,可以使用
$city = preg_replace('/^([0-9]* \w+ )?(.*)$/', '$2', $content[2]);
首先运行preg_match()以获取将被替换的内容,然后按原样替换内容。首先使用preg_match_all()获取字符串中的所有匹配项,然后运行preg_replace()以进行实际替换。在回调中替换变量之前,可以使用匹配项并将其分配给变量:
$pattern = '/^([0-9]* \w+ )?(.*)$/';
$matches = array();
$replace = function($groups) use (&$matches)
{
$matches = $groups;
return $groups[2];
};
$city = preg_replace_callback($pattern, $replace, $content[2]);
var_dump($city, $matches);
但是,在您的特定情况下,您甚至不需要运行preg\u replace
,只需使用preg\u match
:
$pattern = '/^([0-9]* \w+ )?(.*)$/';
$subject= $content[2];
$r = preg_match($pattern, $subject, $matches);
list($replaced,,$city) = $matches; # the result you're looking for.
一旦找到匹配项,就不需要再使用
preg\u replace()
,可以使用str\u replace()
。毕竟,不再需要匹配:)。