正则表达式:查找以不同数字开头和结尾的数字

时间:2018-08-19 11:50:38

标签: regex

我正在寻找一个正则表达式,该表达式可用于查找以不同数字开头和结尾的数字。

我尝试了以下操作:^(\d)\d*(?!\1)$

但是,这不起作用,它为

这样的数字提供了正匹配项
  1. 121
  2. 1233
  3. 1441

我在哪里弄错了?有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以在捕获组之后使用正向前行(?!\d*\1$)来断言其后的结果不是零或更多倍于以组1结尾的数字。

^(\d)(?!\d*\1$)\d*$

答案 1 :(得分:2)

您的正则表达式实际上与最后一位数字不匹配。您应该这样做:

^(\d)\d*(?!\1)\d$
              ^^
              match the last digit!

您的正则表达式只是断言末尾没有起始数字。嗯,一个空字符串也“不是起始数字”,因此它与1221之类的东西匹配。您必须告诉它匹配“不是起始数字的数字”。

Demo