控制表达式中的字符数?

时间:2013-08-13 08:01:32

标签: regex

我可以以某种方式限制整个表达式的字符数吗?

我想限制表达式中的字符数,如:

([0-9]+(\.?[0-9]+)*)

我希望接受超出限制的字符串。对于 例如,如果限制为4:

  • 12.3被接受
  • 012
  • 12345没有。

2 个答案:

答案 0 :(得分:1)

使用锚定前瞻(例如最大33):

^(?=.{0,33}$)([0-9]+(\.?[0-9]+)*)

要使完全 33,请删除0,


忽略限制中的句点数

^(?=(\.*[^.]){0,33}\.*$)([0-9]+(\.?[0-9]+)*)

答案 1 :(得分:1)

正则表达式量词:

  • {n} - 完全n次出现
  • {n,m} - 最低n次出现,最多m次出现
  • {,m} - 最低零,最高m
  • {n,} - 最低n,最大无穷大。
  • * - 任何金额。相当于{0,}
  • + - 一个或多个。相当于{1,}
  • ? - 零或一。与{0,1}
  • 相悖

这总结了它。