regex - 多个可能的字符串输入的正则表达式公式验证
问题描述
在构建 Regex 公式以验证输入字符串时需要一些帮助。
以下是我到目前为止提供的公式,但有些部分不能按要求工作。
要求:-
可接受的输入字符串
- 强制字符长度在 8,16 之间
- 强制字符串内容字母数字,最少 1 个 Alpha --> 不起作用
- 可选特殊字符 ._- --> 不起作用
样品:
-'11910281 --> Not Match'
-'9U910281 --> Match'
-'BC189201 --> Match'
-'BC189201.01 --> Match'
-'BC189201_01 --> Match'
-'BC189201-01 --> Match'
或字符串如下
MTMBX|MTTBX|MTRBX|MTRBX|MTREJ
不可接受的带前缀的输入字符串
GMSS|GTSS|GRRT|REJS
解决方案
你可以使用
^(?!GMSS|GTSS|GRRT|REJS)(?:(?=[^A-Z\s]*[A-Z])[A-Z0-9._-]{8,16}|MTMBX|MTTBX|MTRBX|MTRBX|MTREJ)$
模式匹配:
^
字符串的开始(?!GMSS|GTSS|GRRT|REJS)
负前瞻,不断言任何替代方案(?:
非捕获组(?=[^A-Z\s]*[A-Z])
正向前瞻,至少断言一个字符 AZ[A-Z0-9._-]{8,16}
匹配任何列出的 8-16 次|
或者MTMBX|MTTBX|MTRBX|MTRBX|MTREJ
匹配任何允许的替代方案
)
关闭非捕获组$
字符串结束
推荐阅读
- python - 带条件的正则表达式
- javascript - 每次从下拉列表中选择项目时,如何使图表动态化?
- django - 添加到购物车功能的 Django 选择字段
- ios - 如何从 iPhone 设备获取 mp3 音频文件以及如何转换特定的比特率和采样率?
- android - 如果没有放置物品的地方,我们给 showAsAction="always" 怎么办?
- python - 如何从文件中的类中导入列表?
- python - Python:查找'a_str'中的最后一个字母。用'@'替换'a_str'中这个字母的每个出现。EG 'a_str' = "Dog dog",输出应该是 "Do@do@"
- reactjs - 从搜索 API 获取项目的最佳方式是什么?
- reactjs - 无法在反应路由器中访问我的 /movie/:id 路由,其他人工作正常。你能告诉我我做错了什么吗?
- c++ - Qt c++ VS 代码:如何使用相对文件路径?