regex - 正则表达式将匹配 2 个特定模式
问题描述
我需要一些关于正则表达式的帮助。
RegEx 应匹配以下 2 种模式:
案例 1:XT123456 匹配时返回值 = 123456
情况2:匹配时为1234567,则返回值= 1234567
应丢弃其他值(12345、XT1234567、T123456 等)。
一些帮助将不胜感激,谢谢
问候,
马努
解决方案
首先,您应该分别使用这两种模式。
这是我对第一个模式的表达:
(?<=XT)(\d{6}(?!\d))
这意味着您搜索的数字必须以“XT”开头,但不能捕获它,并且不能以另一个数字结尾,以将捕获表达式限制为 6 位。
另一个模式的第二个表达式:
(?<!XT)(\d{7}(?!\d))
与第一个不同,我排除了以“XT”文本开头的数字,并且不得以另一个数字结尾以将限制保持在 7 位。
然后将两种模式组合在一起:
(?<=XT)(\d{6}(?!\d))|(?<!XT)(\d{7}(?!\d))
您可以在这里自己尝试:https ://regex101.com/r/cbn4XJ/1/
推荐阅读
- python - 无法使用 tf.keras 顺序模型进行预测
- jestjs - 我可以获取 Jest 测试实例 ID 或上下文吗
- python - 如何合并两个数据框
- amp-html - 通过位置观察器为 amp-img 设置动画:剪辑路径失败...我是不是很笨?
- python - Django:在 mysql db 中保存 html 条目
- javascript - 一个对象怎么可能有一个属性,但访问它会导致 ReferenceError?
- spring-boot - 有没有办法在使用 SpringCloud OpenFeign 时为每个 Feign 实例创建不同的客户端?
- javascript - 让 Vue.js 同步隐藏和切换 css 类
- python - 使用 Apache Beam 以 CSV 格式将 BigQuery 结果写入 GCS 时出现编码问题
- angular - Angular v11 中的自动按钮单击功能