我有一个存储在变量中的查询字符串,我需要使用 preg_replace() 从中删除一些东西
我要删除的参数如下所示:
&filtered_features[48][]=491
由于查询字符串中将有多个这些参数,因此 48 和 491 可以是任何数字,因此正则表达式需要基本上匹配:
'&filtered_features[' + Any number + '][]=' + Any number
有人知道我会怎么做吗?
我有一个存储在变量中的查询字符串,我需要使用 preg_replace() 从中删除一些东西
我要删除的参数如下所示:
&filtered_features[48][]=491
由于查询字符串中将有多个这些参数,因此 48 和 491 可以是任何数字,因此正则表达式需要基本上匹配:
'&filtered_features[' + Any number + '][]=' + Any number
有人知道我会怎么做吗?
$string = '&filtered_features[48][]=491';
$string = preg_replace('/\[\d+\]\[\]=\d+/', '[][]=', $string);
echo $string;
我假设您想从字符串中删除数字。这也将匹配多变量查询字符串,因为它只查找 [A_NUMBER][]=A_NUMBER 并将其更改为 [][]=
$query_string = "&filtered_features[48][]=491&filtered_features[49][]=492";
$lines = explode("&", $query_string);
$pattern = "/filtered_features\[([0-9]*)\]\[\]=([0-9]*)/";
foreach($lines as $line)
{
preg_match($pattern, $line, $m);
var_dump($m);
}
/\&filtered_features\[(?<n1>\d*)\]\[\]\=(?<n2>\d*)/'
这将匹配 n1 中的第一个数字和 n2 中的第二个数字
preg_match_all( '/\&filtered_features\[(?<n1>\d*)\]\[\]\=(?<n2>\d*)/', $str, $matches);
神秘的答案将用此字符串替换不必要的内容:
&something[1][]=123&filtered_features[48][]=491