2011-05-02 33 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 
} 

?>