Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
与变量一起使用时,php preg_匹配失败_Php_Regex - Fatal编程技术网

与变量一起使用时,php preg_匹配失败

与变量一起使用时,php preg_匹配失败,php,regex,Php,Regex,对不起,我在某处犯了一个可怕的错误,但情况是这样的: 在php中,我有: $ln = "A/RADIUS ADMITS VALUE 20"; $trg = "A/RADIUS"; $matches = array(); $zz = preg_match('#$trg\sADMITS\s(VALUE)\s([^\s]+)#',$ln,$matches); 我想捕获不带引号的单词“VALUE”和最后一个单词,这里是字符串20,由([^\s]+)给出。这不是重复多次的空白,对吗 但是$zz为0,表示

对不起,我在某处犯了一个可怕的错误,但情况是这样的:

在php中,我有:

$ln = "A/RADIUS ADMITS VALUE 20";
$trg = "A/RADIUS";
$matches = array();
$zz = preg_match('#$trg\sADMITS\s(VALUE)\s([^\s]+)#',$ln,$matches);
我想捕获不带引号的单词
“VALUE”
和最后一个单词,这里是字符串20,由([^\s]+)给出。这不是重复多次的空白,对吗

但是
$zz
为0,表示不匹配,
$matches
为空。我也试过了

 $zz = preg_match('#'.$trg.'\sADMITS\s(VALUE)\s([^\s]+)#',$ln,$matches);
同样的问题


我愚蠢地犯的错误在哪里?

您正在使用单引号将
$trg
变量嵌入字符串中,这仅在使用双引号括住字符串时有效。这应该起作用:

$zz = preg_match("#$trg\sADMITS\s(VALUE)\s([^\s]+)#",$ln,$matches);

.@H2Ooooo很奇怪,我可以确认它按预期工作。请参阅:使用单引号然后使用“.”表示变量无效,将变量嵌入双引号字符串有效。非常感谢。还有一个问题,关于$zz=preg_match(“#”。$trg.\sADMITS\s(VALUE)\s([^\s]+)#,$ln,$matches);失败:这是PHP中的错误吗?我应该提交一份报告吗?