正则表达式匹配开头的字符和结尾的数字

时间:2017-12-04 06:54:13

标签: c# regex

我需要一个正则表达式来满足以下条件:

  • 字符串的长度正好是8
  • 字符串可能无法以PAK
  • 开头
  • 第一个字符必须是大写char [A-Z]
  • 第二个到第四个字符可以是大写字母
  • 其余字符可能只是数字

示例:

  • PAK12345 - >不允许
  • T1234567 - >允许
  • ABCD1234 - >允许
  • ABC12345 - >允许
  • AB12345A - >不允许
  • ABCDE123 - >不允许
  • ABC123 - >不允许

其实我有以下正则表达式:

(?!PAK)([A-Z]{1,4}[A-Z0-9]{7})$

这个正则表达式的问题是," ABCDE123"是一场比赛。

我怎么说,前1到4个字符只是大写字母,剩下的(直到8的总长度)是数字?

1 个答案:

答案 0 :(得分:3)

删除正则表达式范围运算符并进行精确的字符长度匹配。首先添加一个正向前瞻,以确保长度必须正好为8。

^(?=.{8}$)(?!PAK)([A-Z]{1,4}[0-9]+)$

DEMO