2
我在使preg_match
允许7-10位数字。数字和字母表的preg匹配
preg_match('/[0-9]{7,10}/', $studentID
此外另一个preg_match
代码,允许最多20个字母与空间和连字符。
preg_match ('/^[a-zA-Z -]{,20}+$/i', $familyname
这两个都不起作用。
我在使preg_match
允许7-10位数字。数字和字母表的preg匹配
preg_match('/[0-9]{7,10}/', $studentID
此外另一个preg_match
代码,允许最多20个字母与空间和连字符。
preg_match ('/^[a-zA-Z -]{,20}+$/i', $familyname
这两个都不起作用。
您需要锚添加到第一个正则表达式,你用他们的第二图案以同样的方式,你必须定义为限制量词下界在第二图案(比如,0至20):
$studentID = "1234567";
if (preg_match('/^[0-9]{7,10}$/', $studentID)) {
echo "$studentID matched!\n";
}
$familyname = "Pupkin";
if (preg_match ('/^[A-Z -]{0,20}$/i', $familyname)) {
echo "$familyname matched!";
}
注意{0,20}
和占有欲{0,20}+
版本将工作一样,因为这里的格局并没有随着其他消费子模式(所以,没有必要禁止回溯了量化的子模式)。
此外,'/^[A-Z -]{0,20}$/i'
是一个非常通用的姓氏子模式,你可能想要进一步精确。例如,要禁止所有空格或---------
的字符串,可以使用'/^(?=.{0,20}$)[A-Z]+(?:[ -][A-Z]+)*$/i'
。
您的陈述都没有被正确关闭w /');' –
'a-zA-Z'与'/ i'是多余的。 '/ i'已经使正则表达式不区分大小写,所以提供大小写版本是没有意义的。和'{,20} +'也没有多大意义。 –