我正面临一个很好的挑战,要使用正则表达式分别匹配两个相同的数字。

请在此处查看我要单独匹配的列表。

1,680,000,0001,680,000,000
3,350,0003,350,000
110,000110,000
11,100,00011,100,000
550,000550,000
1,0001,000
250250
49,50049,500
165,000165,000
49,50049,500
3,350,0003,350,000
165,000165,000
550,000550,000
550,000550,000
33,10033,100
18,10018,100
450,000450,000

以550,000550,000为例,这是550,000的两倍,或者250250是250的两倍。我想匹配例如550,000和250。

我已经在RegexBuddy中测试了许多正则表达式,但没有人愿意做。也许您有个建议?

最佳答案

如果我正确理解您的要求,那么

^(.+)\1$

应该管用。您可以将可能的匹配限制为仅允许数字和逗号,如下所示:
^([\d,]+)\1$

这匹配一个“双数”,并在捕获组号1时保留第一个重复项。如果您只希望您的匹配项包含第一个重复项,则使用
^([\d,]+)(?=\1$)

关于regex - 正则表达式挑战以分别匹配相同的数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9239623/

10-09 18:25