^ # Start of string
(?: # Start of first non-capturing group:
(?!0) # Negative lookahead (?!): avoid starting with zero
\d{6,8} # Digits (an equivalent is [0-9]); 6 to 8 times
| # Or
(?!0) # Negative lookahead (?!): avoid starting with zero
\d{5,7}A # Digits (an equivalent is [0-9]); 5 to 7 times, followed by an 'A'
) # End of first non-capturing group
(?: # Start of second non-capturing group:
-\d # A hyphen followed by a single digit
)? # End of second non-capturing group; '?' = 'optional': may or may not appear
$ # End of string
具有捕获组的版本:
^((?!0)\d{6,8}|(?!0)\d{5,7}A)(-\d)?$
1.最短的版本: 在这种情况下,只有大写 A 或 B 或 C 或 D 可以是可以出现在文档结尾的字母数字字符。
^[1-9]\d{4,6}[\dA-D](?:-\d)?$
# or
^[1-9]\d{4,6}[\dA-D](-\d)?$
^ # Start of string
[1-9] # Digits from 1 to 9 (avoid starting with zero)
\d{4,6} # Digits (an equivalent is [0-9]); 4 to 6 times
[\dA-D] # Digits or capital A/B/C/D
(?: # Start of non-capturing group:
-\d # A hyphen followed by a single digit
)? # End of second non-capturing group; '?' = 'optional': may or may not appear
$ # End of string
2条答案
按热度按时间w7t8yxp51#
你可以用
参见regex demo。
^
-字符串开始[0-9]+
-一个或多个数字[A-Z]?
-可选大写ASCII字母(-[0-9])?
--
和数字的可选序列$
-字符串结束。jm2pwxwz2#
两种选择:“非常长”和“非常短”的版本。两者都假定RUC(无校验位)的长度为6到8个字符。
1.最后一个“非常长”的版本:
在这里,可以出现在文档末尾的唯一字母数字字符是大写 A。
具有捕获组的版本:
1.最短的版本:
在这种情况下,只有大写 A 或 B 或 C 或 D 可以是可以出现在文档结尾的字母数字字符。
均在JavaScript中测试。
?!
mean?