regex - 接受大写字母的正则表达式应该接受数字
问题描述
我有一个正则表达式,它应该在最后的 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?
编辑:
注意不幸的是,最终的正则表达式应该接受这两种情况。
解决方案
对,那是正确的。您可以在这里看到它的工作原理: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
推荐阅读
- c# - Microsoft Graph API:Httpclient 403 禁止错误
- react-native - 添加新组件时 React Native 组件松散排列
- java - Spring:在 Unittest 中回滚事务
- excel - 将 A 列与 B 列和 B 列与 A 列进行比较,并分别复制整行缺失和添加到新工作表
- python - 如果我的函数有两个嵌套的 for 循环,它会以二次时间运行吗?
- flutter - 颤振检查器 devtools 详细信息选项卡 D 是什么意思?
- c++ - C/C++:注释“/*< */”代表什么?
- python - ModuleNotFoundError:没有名为“psutil”的模块
- c# - 使用实体框架存储库模式克隆动态对象
- android - 较低 android 版本上的 CardView 设计问题