2012-11-07 68 views
1

我有這樣的正則表達式:RegEx驗證4位和5位數字?

if(preg_match("@^\d{4}[email protected]", basename($entry, ".php"))) { 
--do something here-- 
} 

該條件僅適用於4個位數。但我需要驗證4位數字和5位數字。如何使它工作來驗證5位數字呢?謝謝!

+0

*另見[打開源使用RegexBuddy替代(http://stackoverflow.com/questions/89718/is-there)和[在線的正則表達式的測試](http://stackoverflow.com/questions/32282/regex-testing),或者[RegExp.info](http://regular-expressions.info/)。 – mario

回答

6

大括號可以採取一個範圍的低端和高端,所以{4,5}應該工作。

+0

+1爲正則表達式解釋。我鼓勵你也提供一個代碼示例。 –

+0

下面是你可以在命令行上運行的東西:'php -r'$ pattern =「/^\ d {4,5} /」; preg_match($ pattern,「12345678」,$ a);的print_r($ A);'' – LazyMonkey

2
if(preg_match("@^\d{4,5}[email protected]", basename($entry, ".php"))) { 
--do something here-- 
} 
3

作爲替代正則表達式,可以考慮像ctype_digit()strlen()簡單的功能。

$filename = basename($entry, ".php"); 
$length = strlen($filename); 

if (($length >= 4 && $length <= 5) && ctype_digit($filename)) { 
    // your code 
}