用于验证的正则表达式格式

时间:2019-09-13 05:03:54

标签: regex

我正在尝试在正则表达式中验证以下格式,但不成功。

我在正则表达式下尝试过

"^[0-9]{1,6}X{1}$"

"^[0-9]{1,6}X$"

它不满足所有条件。

必需格式:

  1. 12345(仅正确的数字)
  2. 2753XX(带有X的数字是正确的,但X必须在数字之后)
  3. 542XXX45(此格式不正确,因为X在数字之间)。
  4. 4654abc(此格式不正确,因为它是字母数字)

所以我需要regp格式

  1. 字符串以数字开头
  2. 字符串以数字开头,仅以X结尾
  3. 字符串的最大长度为6,包括X

3 个答案:

答案 0 :(得分:4)

尝试以下模式:

^(?=.{1,6}$)[0-9]{1,6}X*$

以下是该模式的说明:

^                from the start of the string
    (?=.{1,6}$)  assert that the total length is at least 1 and at most 6
    [0-9]        then match 1 to 6 digits
    X*           followed by optional X
$                end of string

答案 1 :(得分:3)

您错过了X 可选的设置。 这样做:

^[0-9]{1,6}X*$ /gm

这表示文本以1到6位数字开头,以零个或多个X结尾。

Demo

对于不区分大小写的情况,请使用/i标志:

^[0-9]{1,6}X*$ /gmi

Demo

或者,您也可以使用包含小写和大写字母的字符集:

^[0-9]{1,6}[Xx]*$ /gm

Demo

正向超前将根据需要限制最大长度:

^(?=.{1,6}$)[0-9]*[Xx]*$ /gm

Demo

答案 2 :(得分:0)

为进行验证,也许限制X的数目是可以的,例如:

^[0-9]{1,6}X{0,6}$

Demo 1

或:

^(?:\dX{5}|\d{2}X{4}|\d{3}X{3}|\d{4}X{2}|\d{5}X|\d{6})$

Demo 2