PHP preg_match范围

时间:2012-04-07 16:57:17

标签: php preg-match

我想使用preg_match匹配数字1 - 21.如何使用preg_match执行此操作?如果数字大于21,我不想匹配任何东西。

example preg_match('([0-9][0-1]{0,2})', 'Johnathan 21');

2 个答案:

答案 0 :(得分:2)

comment above复制:

我建议简单地匹配([0-9]{1,2})(可能包含在\b中,基于输入格式)并稍后在PHP代码中过滤数值。

另见Raymond Chen's thoughts on the subject

答案 1 :(得分:1)

字面上:

preg_match('~ (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21)$~', 'Johnathan 21');

但也许这更有趣:

preg_match('~ ([1-9]|1[0-9]|2[01])$~', 'Johnathan 21');