0

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

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

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

我希望接受限制后的字符串。例如,如果限制为 4:

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

2 回答 2

1

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

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

要使其恰好为33,请删除0,


忽略限制中的周期数

^(?=(\.*[^.]){0,33}\.*$)([0-9]+(\.?[0-9]+)*)
于 2013-08-13T08:05:12.483 回答
1

正则表达式量词:

  • {n}- 确切的n外观
  • {n,m}- 最小n出现次数,最大m出现次数
  • {,m}- 最小零,最大m
  • {n,}- 最小n,最大无穷大。
  • *- 任何数量。相当于{0,}
  • +- 一个或多个。相当于{1,}
  • ?- 零或一。相当于{0,1}

这大概总结了一下。

于 2013-08-13T08:07:33.383 回答