Preg匹配PHP表达式以从{{STRING}}内的文本捕获数组

时间:2012-02-08 12:26:46

标签: 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);

3 个答案:

答案 0 :(得分:1)

使用preg_match_all

preg_match_all("/{{([^\"}]+)\}}/", $url , $cols);

答案 1 :(得分:1)

我认为它应该是(你可能需要使用旗帜来获得所需的订单):

preg_match_all("/{{([^}]+)\}}/", $url , $cols, PREG_SET_ORDER);

答案 2 :(得分:1)

此代码将提供您的值:

$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
)