作者:敏--MM | 来源:互联网 | 2022-12-09 12:28
我最近几天正在使用正则表达式,现在需要制作与2位数匹配的正则表达式但数字应该彼此不同例如以下匹配:56,78,20 ......但是以下不应该匹配: 22,33,66或99
这个解决方案已经浪费了几天时间.所以任何建议都会受到欢迎.
1> CertainPerfo..:
捕获第一个数字,然后使用负向预测,并对第一个数字进行反向引用,以确保不会重复:
(\d)(?!\1)\d
https://regex101.com/r/AxH6s8/1
如果您需要一个命名组:
(?\d)(?!\k)\d
对于n
没有任何重复数字的行中数字的一般解决方案,您可以执行类似的操作,除了\d*
在反向引用之前放入负向前瞻:
^(?:(\d)(?!\d*\g{-1}))+$
https://regex101.com/r/AxH6s8/2