正则表达两位数不相同的两位数字

Sap*_*asu 1 regex

我正在尝试编写一个正则表达式,它将匹配两位数不相同的两位数字.

我使用了以下表达式:

^([0-9])(?!\1)$
Run Code Online (Sandbox Code Playgroud)

但是,字符串"11"和"12"都不匹配.我认为"12"会匹配.谁能告诉我哪里出错了?

Wik*_*żew 5

您需要允许匹配2位数.你的正则表达式^([0-9])(?!\1)$只允许1位数的字符串.请注意,前瞻不消耗字符,它只检查当前位置之后是否存在某些内容.

使用

^(\d)(?!\1)\d$
           ^^
Run Code Online (Sandbox Code Playgroud)

演示

模式说明:

  • ^ - 字符串的开头
  • (\d) - 匹配并捕获第1组数字
  • (?!\1) - 确保下一个字符与第1组中的字符不同
  • \d - 一位数
  • $ - 字符串结尾.