正则表达式范围1-1000

use*_*835 12 regex

可能重复:
正则表达式,其中字符串的一部分必须在0到100之间

我需要帮助创建一个1-1000的整数范围的简单正则表达式,没有特殊字符.

这两个我似乎都打破或允许字符或不完整范围:

  1. ^\d(\d)?(\d)?$
  2. ^[0-9]{1,3}$

任何帮助,将不胜感激!

Gum*_*mbo 30

试试这个:

^([1-9][0-9]{0,2}|1000)$
Run Code Online (Sandbox Code Playgroud)
  • [1-9][0-9]{0,2}匹配之间的任何数字1-999
  • 1000 火柴 1000

  • 它不允许数字> 1000. (3认同)
  • 对于@jDub9(以及其他未来的读者);`[1-9]` 匹配第一个数字,从 1 到 9。第二个块 `[0-9]{0,2}` 表示下一个字符可以是 0 到 9,并且可以有 *零到 2* (`{0,2}`) 个这些字符。第一部分在功能上相当于“[1-9][0-9]?[0-9]?”,涵盖字符串 1-999。最后,后面的管道“|”充当捕获组“()”内的“OR”,这意味着字符串可以匹配第一部分,*或*逐字匹配字符串“1000”。您可以看到另一个[Regex101 的细分](https://regex101.com/r/ifT1HS/)。 (3认同)