我是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中的括号内打印模式一样。
答案 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]
包含[]
。