2011-05-02 19 views
1

我使用下面的代碼以2個或3位數字的preg_match找到兩位數字以上14

preg_match("/^[0-9]{2,3}$/",trim($textMessage),$result) 

它正常工作,以確定接下來的文字或沒有。但是我只需要從14以上找到數字。但上面的代碼匹配10自身。

請幫忙。提前致謝。

+2

爲什麼不只是檢查後呢?如果可能的話,試圖用正則表達式來處理所有事情(在這種情況下,它是),當你可以利用這段時間做更多有用的事情時,這是毫無意義的。 – icktoofay 2011-05-02 04:18:44

+0

不建議這樣做與正則表達式,這種不良的邏輯可能會鼓勵你找到方式,如果一個數字是質數或不使用正則表達式: -/ – DhruvPathak 2011-05-02 04:26:15

回答

2

簡單。你從

[0-9]{2,3} 

切換你的電話號碼一部分,這一點:

(1[5-9])|([2-9][0-9])|([1-9][0-9]{2}) 
+0

它的工作原理,但我不禁認爲正則表達式不正確爲此的工具。 – zneak 2011-05-02 04:25:54

+0

謝謝你bdares。它工作正常 – Coder 2011-05-02 04:35:19

+0

我知道這不是正確的工具。我希望@Coder在看到你需要爲它構建什麼類型的正則表達式後會看到它,但是*聳聳肩*如果他對此感到滿意的話。 – bdares 2011-05-02 04:54:01

3

正則表達式實在不應該被用於這樣的比較 - 這是更多的模式匹配。所以,保持你的正則表達式的方式和測試$result

<?php 

$textMessage = '123'; 
preg_match("/^[0-9]{2,3}$/",trim($textMessage),$result); 
print_r($result); 


if($result[0] > 14) 
{ 
    // do something here 
} 

?>