3

我想使用 preg_match 来匹配数字 1 - 21。如何使用 preg_match 做到这一点?如果数字大于 21,我不想匹配任何东西。

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

2 回答 2

3

从上面的评论复制:

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

另请参阅Raymond Chen 对此主题的看法

于 2012-04-07T17:21:42.363 回答
2

字面上地:

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');
于 2012-04-07T17:02:29.987 回答