首页 > 解决方案 > 正则表达式将匹配 2 个特定模式

问题描述

我需要一些关于正则表达式的帮助。

RegEx 应匹配以下 2 种模式:

案例 1:XT123456 匹配时返回值 = 123456

情况2:匹配时为1234567,则返回值= 1234567

应丢弃其他值(12345、XT1234567、T123456 等)。

一些帮助将不胜感激,谢谢

问候,

马努

标签: regex

解决方案


首先,您应该分别使用这两种模式。

这是我对第一个模式的表达:

(?<=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/


推荐阅读