3

preg_match を使用して 1 ~ 21 の数字を一致させたいのですが、preg_match を使用してこれを行うにはどうすればよいですか? 数が 21 より大きい場合、何にも一致させたくありません。

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

2 に答える 2

3

上記のコメントからコピー:

単純に一致させ([0-9]{1,2})(入力形式に基づいて でラップすることもでき\bます)、後で PHP コードで数値をフィルタリングすることをお勧めします。

この件に関する 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 に答える