我有这个正则表达式:
if(preg_match("@^\d{4}$@", basename($entry, ".php"))) {
--do something here--
}
该条件仅适用于4位数字。但我需要验证4位数字和5位数字。如何使其工作以验证5位数?谢谢!
答案 0 :(得分:6)
大括号可以采用范围的低端和高端,因此{4,5}
应该有效。
答案 1 :(得分:3)
作为正则表达式的替代方法,请考虑更简单的函数,例如ctype_digit()
和strlen()
。
$filename = basename($entry, ".php");
$length = strlen($filename);
if (($length >= 4 && $length <= 5) && ctype_digit($filename)) {
// your code
}
答案 2 :(得分:2)
if(preg_match("@^\d{4,5}$@", basename($entry, ".php"))) {
--do something here--
}
答案 3 :(得分:2)
而不是
if(preg_match("@^\d{4}$@", basename($entry, ".php"))) {
使用
if(preg_match("@^\d{4,5}$@", basename($entry, ".php"))) {