RegEx匹配两个替代品,但没有别的

时间:2009-08-29 14:23:14

标签: regex

我需要捕获

\d+\.\d+

\d+

但没有别的。

例如,“0.02”,“1”和“0.50”应该匹配。我注意到我不能简单地使用像

这样的东西
[\d+\.\d+|\d+]

3 个答案:

答案 0 :(得分:4)

(\d+\.\d+|\d+)

应该这样做。

答案 1 :(得分:1)

你可以这样做:

(\d+|\d+\.\d+)

(\d+(\.\d+)?)

但是这会创建第二个捕获组。更复杂的版本是:

(\d+(?:\.\d+)?)

这称为non-capturing group

顺便说一句,Regular Expression Info是一个极好的常规表达教程和信息网站。

答案 2 :(得分:0)

\d+(\.\d+)?如果您觉得更容易阅读:)