gpt4 book ai didi

regex - 正则表达式以不同顺序查找具有相同数字的数字

转载 作者:行者123 更新时间:2023-12-01 06:54:44 25 4
gpt4 key购买 nike

我一直在用 Google 寻找正则表达式一个小时左右,但似乎无法解决这个问题:(

如果我有号码,请说:
2345
我想找到任何其他数字相同但顺序不同的数字,如下所示:
2345
例如,我匹配
32455432 (相同的数字但不同的顺序)

我将如何为此编写正则表达式?

最佳答案

有一种“优雅”的方式可以用一个正则表达式来做到这一点:

^(?:2()|3()|4()|5()){4}\1\2\3\4$

将按任意顺序匹配数字 2、3、4 和 5。这四个都是必需的。

解释:
(?:2()|3()|4()|5())匹配数字 2、3、4 或 5 之一。现在的技巧是捕获括号在匹配数字后匹配空字符串(总是成功)。
{4}要求这发生四次。
\1\2\3\4 then 要求所有四个反向引用都参与了匹配——当且仅当每个数字出现一次时,它们才会这样做。自 \1\2\3\4匹配一个空字符串,只要前一个条件为真,它就会一直匹配。

对于五位数,你需要
^(?:2()|3()|4()|5()|6()){5}\1\2\3\4\5$

等等...

这几乎适用于除 JavaScript 之外的任何正则表达式风格。

关于regex - 正则表达式以不同顺序查找具有相同数字的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1607086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com