接受大写字母的正则表达式应改用数字

时间:2018-10-25 13:32:06

标签: regex bash sysadmin

我有一个正则表达式,应该在最后的M位置接受一个数字,但是我的客户却有一个字母(大写M)。

  

CNTCST79L20H50 M G

正则表达式为:

^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$

如何修改正则表达式,使其接受CNTCST79L20H50 M G而不是数字?

^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{2}$

更正为代码的正则表达式

  

CNTCST79L20H50MG?

编辑:

注意不幸的是,最终的正则表达式应该接受两种情况。

1 个答案:

答案 0 :(得分:4)

是的,这是正确的。您可以在这里看到它的工作:https://regex101.com/r/rHBFnA/1

已更新更新:)

您可以在字符类中同时设置字母和数字:

^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z0-9][A-Za-z]$

与以下两项均匹配:

CNTCST79L20H50MG
CNTCST79L20H505G

但不是这样:

CNTCST79L20H5057

https://regex101.com/r/rHBFnA/4