在正则表达式中,我需要知道如何匹配一件事或另一件事,或两者(按顺序)。但至少其中一件事需要存在。
例如下面的正则表达式
/^([0-9]+|\.[0-9]+)$/
将匹配
234
和
.56
但不是
234.56
而下面的正则表达式
/^([0-9]+)?(\.[0-9]+)?$/
将匹配上面的所有三个字符串,但它也会匹配我们不想要的空字符串。
我需要匹配上面所有三个字符串的东西,但不是空字符串。有没有简单的方法可以做到这一点?
更新:
下面的 Andrew 和 Justin 都适用于我提供的简化示例,但它们(除非我弄错了)不适用于我希望解决的实际用例,所以我现在应该把它放进去。这是我正在使用的实际正则表达式:
/^\s*-?0*(?:[0-9]+|[0-9]{1,3}(?:,[0-9]{3})+)(?:\.[0-9]*)?(\s*|[A-Za-z_]*)*$/
这将匹配
45
45.988
45,689
34,569,098,233
567,900.90
-9
-34 banana fries
0.56 points
但它不匹配
.56
我需要它来做到这一点。