我坚持使用正则表达式,我需要帮助。 所以基本上我想做这样的事情:
$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寻求帮助
答案 0 :(得分:17)
在第一个例子中,你有空间,你不应该有一个,
你有:$reg = '/^[a-z"]{1, '. $number .'}$/';
你应该有:
$reg = '/^[a-z"]{1,'. $number .'}$/';
然后它工作得很好
更新:你在第二个例子中有同样的错误 - 感谢AbraCadaver
答案 1 :(得分:1)
在正则表达式中使用变量的另一种方法是使用sprintf。
例如:
$nonWhiteSpace = "^\s";
$pattern = sprintf("/[%s]{1,10}/",$nonWhiteSpace);
var_dump($pattern); //gives you /[^\s]{1,10}/