微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查表达式是否与正则表达式匹配

如何解决检查表达式是否与正则表达式匹配

我想验证以下表达式:

  1. “CODE1:123/CODE2:3467/CODE1:7686”
  2. “CODE1:9090”
  3. “CODE2:078/CODE1:7788/CODE1:333”
  4. “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 后跟 12,然后是带有数字的冒号 :;并可选择后跟斜杠 / 和该模式,次数不限。因此,不允许使用尾随斜杠,它也可以显示为单个代码;并且以任何顺序;所以不需要先排序。

,

CODE 是静态的,但在它之后数字是动态的,为了使它更短,只需使用 CODE\d:\d+

如果您只想匹配 : 后的两位数字,请使用 CODE\d:\d{2}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?