如何解决检查表达式是否与正则表达式匹配
我想验证以下表达式:
- “CODE1:123/CODE2:3467/CODE1:7686”
- “CODE1:9090”
- “CODE2:078/CODE1:7788/CODE1:333”
- “CODE2:77”
就我而言,模式 'CODE1:xx' 或 'CODE2:xx' 以任何不同的顺序给出。 我可以对模式进行排序,使它们像“CODE1:XX/CODE1:YY/CODE2:ZZ” 并检查是否匹配
r'[CODE1:\d+]*[CODE2:\d+]*'
我们能否缩短它:是否可以用一个正则表达式匹配器来解决这个问题? 谢谢
解决方法
此正则表达式将为所有 4 种情况提供匹配:CODE[12]:\d+(?:/CODE[12]:\d+)*
请看这里:https://regex101.com/r/wn30a5/1
它将匹配 CODE
后跟 1
或 2
,然后是带有数字的冒号 :
;并可选择后跟斜杠 /
和该模式,次数不限。因此,不允许使用尾随斜杠,它也可以显示为单个代码;并且以任何顺序;所以不需要先排序。
CODE
是静态的,但在它之后数字是动态的,为了使它更短,只需使用 CODE\d:\d+
如果您只想匹配 :
后的两位数字,请使用 CODE\d:\d{2}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。