对不起,我在某个地方犯了一个可怕的错误,但这就是当前的情况:
在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);
同样的问题。
我愚蠢地犯了哪个错误?
答案 0 :(得分:1)
您正在使用单引号将$trg
变量嵌入字符串中,这仅在使用双引号括起字符串时才有效。这应该有效:
$zz = preg_match("#$trg\sADMITS\s(VALUE)\s([^\s]+)#",$ln,$matches);