我需要编写一个正则表达式来匹配大于或等于1的数字。我看过this answer
Regex: ^(?:[2-9]|\d\d\d*)$
但是,我不明白为什么在数字前有?:
吗?另外,如果我的情况是在句子中间,那么我应该从正则表达式中删除以下^( )$
吗?
编辑:
我需要大于或等于1的炉排,而不仅仅是大于。所以我应该使用[1-9]而不是[2-9]?
EDIT2:
我需要一个正则表达式来捕获大于或等于数字1
的任何数字。
例如:2,3,4, 11, 100, 31557600
或大于该数字的任何数字。
答案 0 :(得分:0)
?:是仅查找图案而不捕获。您的情况似乎有所不同。同样,()用来创建一个组,同样,您不需要使用该功能,因为您的用例非常简单。
如果数字不是000(即没有多余的初始零),则可以
^[1-9]\d*$
。如果数字可以出现在句子之间,请使用\b[1-9]\d*\b
查找单词边界。
基本思想是:您要匹配任何非零的非负数。
因此,数字不应以-
或0
开头。因此,以1-9(正则表达式的{\b[1-9]
部分)开头,然后是任意数字(正则表达式的\d*\b
部分)。
显然,这会省略许多形式的数字:以小数形式浮动(例如23.456),以指数形式浮动数字(例如1.23e4)等等。