正则表达式php中的变量
我一直在学习正则表达式,我需要帮助。 所以基本上我想做这样的事情:正则表达式php中的变量,php,regex,variables,Php,Regex,Variables,我一直在学习正则表达式,我需要帮助。 所以基本上我想做这样的事情: $data = "hi"; $number = 4; $reg = '/^[a-z"]{1,4}$/'; if(preg_match($reg,$data)) { echo 'Match'; }else { echo 'No match'; } 但我想使用变量 $reg = '/^[a-z"]{1, variable here }$/'; 我试过: $reg = '/^[a-z"]{1, '. $
$data = "hi";
$number = 4;
$reg = '/^[a-z"]{1,4}$/';
if(preg_match($reg,$data)) {
echo 'Match';
}else {
echo 'No match';
}
但我想使用变量
$reg = '/^[a-z"]{1, variable here }$/';
我试过:
$reg = '/^[a-z"]{1, '. $number .'}$/';
$reg = "/^[a-z\"]{1, $number}$/";
但是没有得到正确的结果
Tnx帮助在第一个示例中,您有不应该有的空间 你有:
$reg = '/^[a-z"]{1, '. $number .'}$/';
你应具备:
$reg = '/^[a-z"]{1,'. $number .'}$/';
那就好了
更新:在第二个示例中也有相同的错误-多亏了AbraCadaver,在正则表达式中使用变量的另一种方法是使用sprintf 例如:
$nonWhiteSpace = "^\s";
$pattern = sprintf("/[%s]{1,10}/",$nonWhiteSpace);
var_dump($pattern); //gives you /[^\s]{1,10}/
在第一个示例中,您使用的是单引号,这会阻止PHP将您的变量解析为变量。@AlexW-他使用了哪些引号并不重要,因为他将字符串拆分为两部分,并通过
添加$number
operator@Drecker我指的是上面的例子。他把变量放在这里的地方
@abracadver-谢谢,我编辑了答案,所以它会更明显。我有一个问题,当我尝试把变量放在里面时,它不起作用,但是当我把文本从变量放在正确的位置时,它非常有效。