我有這樣的正則表達式:RegEx驗證4位和5位數字?
if(preg_match("@^\d{4}[email protected]", basename($entry, ".php"))) {
--do something here--
}
該條件僅適用於4個位數。但我需要驗證4位數字和5位數字。如何使它工作來驗證5位數字呢?謝謝!
我有這樣的正則表達式:RegEx驗證4位和5位數字?
if(preg_match("@^\d{4}[email protected]", basename($entry, ".php"))) {
--do something here--
}
該條件僅適用於4個位數。但我需要驗證4位數字和5位數字。如何使它工作來驗證5位數字呢?謝謝!
大括號可以採取一個範圍的低端和高端,所以{4,5}
應該工作。
+1爲正則表達式解釋。我鼓勵你也提供一個代碼示例。 –
下面是你可以在命令行上運行的東西:'php -r'$ pattern =「/^\ d {4,5} /」; preg_match($ pattern,「12345678」,$ a);的print_r($ A);'' – LazyMonkey
if(preg_match("@^\d{4,5}[email protected]", basename($entry, ".php"))) {
--do something here--
}
代替
if(preg_match("@^\d{4}[email protected]", basename($entry, ".php"))) {
使用
if(preg_match("@^\d{4,5}[email protected]", basename($entry, ".php"))) {
作爲替代正則表達式,可以考慮像ctype_digit()
和strlen()
簡單的功能。
$filename = basename($entry, ".php");
$length = strlen($filename);
if (($length >= 4 && $length <= 5) && ctype_digit($filename)) {
// your code
}
*另見[打開源使用RegexBuddy替代(http://stackoverflow.com/questions/89718/is-there)和[在線的正則表達式的測試](http://stackoverflow.com/questions/32282/regex-testing),或者[RegExp.info](http://regular-expressions.info/)。 – mario