在正则表达式中从1到2 ^ 31 -1的正数

Tan*_*moy 1 regex validation

我得到了以下正则表达式几乎完成了工作,但不排除零...怎么做?

^(\d|\d{1,9}|1\d{1,9}|20\d{8}|213\d{7}|2146\d{6}|21473\d{5}|214747\d{4}|2147482\d{3}|21474835\d{2}|214748364[0-7])$
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释一下这是如何工作的?

Gre*_*ill 10

正则表达式适合这项工作.一个更好的解决方案是从字符串中提取整数(您可以使用正则表达式\d+),然后将其转换为整数,然后根据所需范围检查整数.

一个重要的推论是永远不要盲目地使用你自己不了解的正则表达式(或任何代码,真的).如果你使用上面的正则表达式,你会做什么,然后有一个要求来修改可接受的范围?

  • +1真的!除非这是作业(在这种情况下代码永远不会被使用),正则表达式绝对不是正确的工具. (2认同)