不带 000 的 3 位数字的正则表达式

Regular Expression for 3 digit without 000

我想在Google表单上写一个正则表达式

第一个字符在 1 到 9 之间 第二和第三个字母(大写) 接下来的 3 个字符应该是数字,如 541 或 001 但不是 000

这个表达式也取000

[1-9][A-Z]{2}[0-9]{3}

使用负数 look-ahead 以避免末尾的三个零:

[1-9][A-Z]{2}(?!000)[0-9]{3}

使用交替:

[1-9][A-Z]{2}([1-9][0-9][0-9]|[0-9][1-9][0-9]|[0-9][0-9][1-9])

regex demo

这里,

  • [1-9] - 匹配从 19
  • 的 1 个数字
  • [A-Z]{2} - 两个大写 ASCII 字母
  • ([1-9][0-9][0-9]|[0-9][1-9][0-9]|[0-9][0-9][1-9]) - 3 个选项:
    • [1-9][0-9][0-9] - 以 1
    • 开头的 3 位数字
    • [0-9][1-9][0-9] - 中间有 1 的 3 位数
    • [0-9][0-9][1-9] - 以 1
    • 结尾的 3 位数字

另请参阅 this regex demo

使用交替运算符 [1-9][1-9][1-9]|0[1-9][1-9]|00[1-9]|0[1-9]0