我是PHP的新手。
如何将$Variable
传递给PHP中REGEX的Quantifier部分。
$name = "JOHN";
$lname = "SMITH";
$str2l = strlen($lname);
$num = "04454318000007010100000SMITH JOHN";
$re = "/([0-9]+.$name\s+[.$lname]{4})/";
$q = preg_match($re, $num, $matches);
以上内容返回TRUE
并且匹配,我想在量词$variable
{$str2l}
例如:$re = "/([0-9]+.$name\s+[.$lname]{$str2l})/";
我如何让这个工作?除非输入数字,否则我得不到正确的答案。
我不知道量词的.$lname
的长度,除非我做String长度。
答案 0 :(得分:0)
这是一个字符串插值问题。 "$var"
与PHP双引号字符串中的"{$var}"
相同。请参阅curly variable syntax说明。
你可以加倍{}
花括号:
$re = "/([0-9]+.$name\s+[.$lname]{{$str2l}})/";
或者修补数字:
$re = "/([0-9]+.$name\s+[.$lname]{" . $str2l . "})/";
第一种选择可能会或可能不会更令人困惑。但至少它不是一个毫无意义的连接。