正则表达式匹配2位数但不同的数字

ren*_*846 2 regex

我最近几天正在使用正则表达式,现在需要制作与2位数匹配的正则表达式但数字应该彼此不同例如以下匹配:56,78,20 ......但是以下不应该匹配: 22,33,66或99

这个解决方案已经浪费了几天时间.所以任何建议都会受到欢迎.

Cer*_*nce 5

捕获第一个数字,然后使用负向预测,并对第一个数字进行反向引用,以确保不会重复:

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

https://regex101.com/r/AxH6s8/1

如果您需要一个命名组:

(?<first>\d)(?!\k<first>)\d
Run Code Online (Sandbox Code Playgroud)

对于n没有任何重复数字的行中数字的一般解决方案,您可以执行类似的操作,除了\d*在反向引用之前放入负向前瞻:

^(?:(\d)(?!\d*\g{-1}))+$
Run Code Online (Sandbox Code Playgroud)

https://regex101.com/r/AxH6s8/2