Regex 任意顺序两位数的正则表达式
我需要一个正则表达式,它将匹配一个字符串,只要它包括2个或更多的数字 我所拥有的:Regex 任意顺序两位数的正则表达式,regex,Regex,我需要一个正则表达式,它将匹配一个字符串,只要它包括2个或更多的数字 我所拥有的: /(?=.*\d)(?=.*\d)/ 及 /\d{2,}/ 即使有一个数字,第一个也会匹配,第二个要求有两个连续的数字。我试图以不同的方式将它们结合起来,但没有效果。您可以做得更简单: /\d\D*\d/ 这取决于您的应用程序语言,但此正则表达式是最通用的: ^(?=.*\d.*\d) 不是所有的应用语言都认为部分匹配是“匹配”;无论输入中两位数字位于何处,此正则表达式都将匹配。您可以使用以下表达式: .*\
/(?=.*\d)(?=.*\d)/
及
/\d{2,}/
即使有一个数字,第一个也会匹配,第二个要求有两个连续的数字。我试图以不同的方式将它们结合起来,但没有效果。您可以做得更简单:
/\d\D*\d/
这取决于您的应用程序语言,但此正则表达式是最通用的:
^(?=.*\d.*\d)
不是所有的应用语言都认为部分匹配是“匹配”;无论输入中两位数字位于何处,此正则表达式都将匹配。
您可以使用以下表达式:.*\d.*\d.*
这将匹配任何包含两个数字的内容,无论在何处。不管数字在哪里
您也可以这样做,使用范围:
.*[0-9].*[0-9].*
<>你也可以考虑使用这个词:
\D*\d\D*\d
\D
将匹配任何非数字字符试试这个。
[0-9]。{2}
这将有助于你当你问正则表达式问题时,你能精确地说出你使用的语言吗?谢谢!我想我把这个问题复杂化了。不,看这篇文章。他指的不是两个连续的数字,而是任何地方的两个数字。更好的是
\D*\D*\D
,因为第一个*
会导致很多回溯。此外,您不需要最后一个*
@Jerry-甚至比消除第一个\D*
更好;这并没有增加任何东西。@TedHopp我同意,但还有一些东西不能确定;这是OP使用的语言和函数。案例:python带有.match
,\d\d*\d
并不总是能工作,而\d*\d*\d
无论使用什么函数都能工作。@Jerry-好吧,python还有.search
,这对\d\d*\d
来说很好。(Java也有类似的.match
和.find
)只需使用适当的API;调用错误的函数,结果当然会很糟糕。@TedHopp我知道。只是OP可能不知道这一点,并尝试使用.match
(未提及),然后回来说它不起作用,只是进入了一个长期的交流(OP和回答者可能会彼此感到沮丧)。
\D*\d\D*\d