正则表达式 - 仅从X到Y的数字

时间:2011-03-12 11:41:01

标签: php regex

  

可能重复:
  Regular expression where part of string must be number between 0-100

我想知道如何使用PHP上的正则表达式过滤一个必须只是数字的变量,从1到300。我该怎么办?

P.S。我真的找不到一本关于正则表达式的每个符号定义的好手册。例如,它是什么意思 / ^ + $ / i ??

2 个答案:

答案 0 :(得分:6)

([1-9][0-9]?|[12][0-9][0-9]|300)

换句话说,(|)或者匹配1到9([1-9]),10到99([1-9][0-9]?),从100到299({{1 }),或300。

答案 1 :(得分:1)

不要这样做 - 这可能会变得过于复杂。只需从字符串中分出数字,将其转换为整数(如果您愿意)并检查其值:

function match( $n ) {
  preg_match( '(\d+)', $n, $matches );
  return $matches && $matches[ 0 ] >= 1 && $matches[ 0 ] <= 300;
}