Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Preg Match PHP表达式从{{STRING}中的文本捕获数组_Php_Regex - Fatal编程技术网

Preg Match PHP表达式从{{STRING}中的文本捕获数组

Preg Match PHP表达式从{{STRING}中的文本捕获数组,php,regex,Php,Regex,我有这根绳子 $url = offer?offer_id={{offer_category_id}}&item{{offer_title}} 有没有一种方法可以用{{}中的文本创建一个php数组,从而生成一个类似于 $array[0] = 'offer_category_id' $array[1] = 'offer_title' 这是我所拥有的,但它并没有按我所希望的那样工作 preg_match("/{{([^\"]*)\}}/", $url , $cols); 使用preg\u

我有这根绳子

$url = offer?offer_id={{offer_category_id}}&item{{offer_title}}
有没有一种方法可以用{{}中的文本创建一个php数组,从而生成一个类似于

$array[0] = 'offer_category_id'
$array[1] = 'offer_title'
这是我所拥有的,但它并没有按我所希望的那样工作

preg_match("/{{([^\"]*)\}}/", $url , $cols);

使用
preg\u match\u all

preg_match_all("/{{([^\"}]+)\}}/", $url , $cols);
我认为应该是(你可能需要玩旗子才能得到想要的订单):


此代码将给出您的值:

$str = 'offer?offer_id={{offer_category_id}}&item{{offer_title}}';
if ( preg_match_all('~{\s*{([^}]*)}~i', $str, $m) )
   print_r ( $m[1] );
输出:

Array
(
    [0] => offer_category_id
    [1] => offer_title
)

伟大的人!你知道它为什么输出:数组([0]=数组([0]={offer\u category\u id}}[1]={{offer\u title})[1]=数组([0]=offer\u category\u id[1]=offer\u title])你是什么意思$cols[1]将包含您需要的数组
Array
(
    [0] => offer_category_id
    [1] => offer_title
)