正则表达式将匹配2种特定模式

时间:2018-08-01 12:25:23

标签: regex

我需要有关正则表达式的帮助。

RegEx应该匹配以下两种模式:

情况1: XT123456匹配时返回值= 123456

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

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

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

此致

Manu

1 个答案:

答案 0 :(得分:0)

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

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

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