用于查找备用重复字符的Regex

问题描述 投票:0回答:1

我有以下数据列表

10000
12100
12312
12120

我正在写一个regex来寻找备用的重复数。所以上面的列表会给出

2 -> (two zeros)
1 -> (1 in 121)
0 -> (no alternate duplicate)
2 -> (1 in 121 and 2 in 212)

我写了以下的regex

([0-9])(?!\1)([0-9])(?:\1\2)*\1

这在第一组和最后一组中不起作用。在第一组中,当中间有相同的数字时,它不能工作,如 111. 在最后,它设置它是不工作的 212.

检查。https:/regexr.com5674s。

regex
1个回答
2
投票

如果你使用负向的看头 (?!\1) 该组将捕获示例中的第一个零。10000但右边只有零,所以不会有匹配,因为反向参考包含一个零。

你可能会捕捉到第1组中的一个数字,并断言直接在右边的是第1组后面的一个数字。

([0-9])(?=[0-9]\1)

注册表演示

© www.soinside.com 2019 - 2024. All rights reserved.