我有一个存储在变量中的查询字符串,我需要使用preg_replace()从中删除一些东西
我要删除的参数如下所示:
&filtered_features[48][]=491
由于查询字符串中存在多个这些参数,因此48和491可以是任意数字,因此正则表达式基本上需要匹配:
'&filtered_features[' + Any number + '][]=' + Any number
任何人都知道我会这样做吗?
答案 0 :(得分:1)
$string = '&filtered_features[48][]=491';
$string = preg_replace('/\[\d+\]\[\]=\d+/', '[][]=', $string);
echo $string;
我假设你想从字符串中删除数字。这将匹配多变量查询字符串,因为它只查找[A_NUMBER] [] = A_NUMBER并将其更改为[] [] =
答案 1 :(得分:0)
$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);
}
答案 2 :(得分:0)
/\&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