几个相似的字符串格式的Regex匹配
Regex match for several similar string formats
在这种格式下匹配一组字符串的最佳方法是什么:
- AA99999999 2个固定字符8个数字
- ABC99999999 3个固定字符8个数字
- AD999999999 2个固定字符9个数字
- BA999999999 2个固定字符9个数字
- BB99999x999 2个固定字符5个数字1个字符3个数字
- BHA-9999#9 4固定字符4数字1固定字符1数字
- BHGD99999 4个固定字符5个数字
对于第一个匹配,我写了一个这样的正则表达式
[a-zA-Z]{3}'d{8}|([a-zA-Z]{2}'d{9}|[a-zA-Z]{2}'d{8})
这个工作,但我不知道第二个。是否有匹配这些格式的正则表达式?
很难确切地说出您在这里想要什么,但是我已经将它们组合成两个正则表达式,而不是使用4,因为它更快。我用过w或者。你用了[a-zA-Z],因为,再说一遍,很难说你想要什么。提供更多的信息,我将修改答案。
'w{2}'d{5}.'d{3}|.{4}'d{4}.?'d
他们只是更多的相同:
([a-zA-Z]{2}'d{9}|([a-zA-Z]{2}'d{5}[a-zA-Z]'d{3}|[a-zA-Z-]{4}[a-zA-Z#]'d)
假设一个'-'
弹出一个[a-zA-Z-]
是一组可以匹配的值[a-zA-Z#]
对于'#'
也是如此
我认为固定字符是指规范有一种情况,如果前3个字符是ABC,后面跟着8个数字,而不是通配符字母,在这种情况下,每种情况的模式如下:
AA99999999 2 fixed characters 8 numbers
AA'd{8}
AD999999999 2 fixed characters 9 numbers
AD'd{9}
ABC99999999 3 fixed characters 8 numbers
ABC'd{8}
also
BA999999999 2 fixed characters 9 numbers
BA'd{9}
BB99999x999 2 fixed characters 5 numbers 1 character 3 numbers
BB'd{5}x'd{3}
BHA-9999#9 4 fixed characters 4 numbers 1 fixed character 1 number
BHA-'d{4}#'d
BHGD99999 4 fixed characters 5 numbers
BHGD'd{5}
var patt1 = /^'w'w['w'd]{1}['d'w-]{1}'d{2}['d'w]{1,4}['d#]{1}'d+$/;
如果是这种情况,您需要将它们中的每一个作为备选项,或者进行一些逻辑匹配或遍历它们中的每一个进行测试,直到找到匹配。
或者你指的是大写字母而不是固定字符?
也许你可以拉这把小提琴。https://jsfiddle.net/shotgundriver/r812c00v/6/
这是作业问题还是现实世界?
相关文章:
- 由于布尔值的变化,Django视图中的字符串格式不正确
- JSON字符串格式错误
- Mysql日期时间字符串格式为angularjs中的可读日期
- 挖空 HTML 绑定和字符串格式的 HTML 长度
- 通过javascript将带有日期的字符串格式化为另一种格式
- 将GeoJson字符串格式设置为虚线
- 将JSON转换为特定的字符串格式
- 通过 jQuery 验证日期字符串格式的最佳方法
- 如何以 html 文本的字符串格式放置变量值
- 如何将javascript字符串格式转换为日期
- 使用 javascript 将 ISO 8601 日期字符串格式化为凌晨 0:00
- 如何将 base64 编码的字符串格式化为 x 个字符的可 jslinable 行
- NodeJS 字符串格式,如 Python
- 将字符串格式化为时间格式,如 hh:mm
- 如何获取 g 元素的字符串格式的 svg
- 读取具有“'”的 JSON 字符串(格式不正确?
- 在 JavaScript/Lodash 中将字符串格式化为电话号码
- 如何使用 Angular “数字”过滤器键入时在输入字段中设置带有千和小数分隔符的字符串格式
- JSON 字符串格式
- 是Javascript的一种特殊字符串格式