如何解析PHP中的组模式,如$ 1,Perl中的$ 2?

时间:2015-02-22 13:36:38

标签: php regex

我是C ++ / perl程序员,学习PHP和解析文本如下。

$regex = "/AAL=(\w+)/";
$input_string = "AAL=data;AC=2;";
if (preg_match_all($regex, $input_string, $matches_out))
{
   echo $matches_out[0][0],"\n";
}

输出:

AAL=data

但是我怎么才能打印数据,就像我使用$ 1在Perl中的括号内打印模式一样。

1 个答案:

答案 0 :(得分:1)

只需更改多维数组的索引号。

$regex = "/AAL=(\w+)/";
$input_string = "AAL=data;AC=2;";
if (preg_match_all($regex, $input_string, $matches_out))
{
   echo $matches_out[1][0],"\n";
}

索引1包含第一个捕获组的值。

    $matches_out[1][0]
                 ^  ^
  Refers the first  Refers the first value present inside the first captured group. 
  captured group

即,如果输入为AAL=data;AC=2;AAL=[],则$matches_out[1][0]包含data$matches_out[1][1]包含[]