我想用像
这样的单位解析数字3cm
3.44 cm
12,33 mm
以下表达式完全符合我的要求
(([0-9]*(?:[,.]?[0-9]*?))[\s]*(cm|mm))
但问题是它还匹配
之类的东西cm 22.1 cm
在这种情况下,它会忽略数字并仅匹配第一个cm,如何忽略第一个cm?
答案 0 :(得分:2)
您可以将第一个数字匹配量词从零或更多(*)更新为一个或多个(+):
(([0-9]+(?:[,.]?[0-9]*?))[\s]*(cm|mm))
答案 1 :(得分:1)
答案 2 :(得分:1)
与其他人一样,您需要将量词*
更改为+
,其中*
代表零或更多,+
代表一个或多个。如果你想匹配12,533.45 cm
之类的数字,那么你可以使用下面的正则表达式。
[0-9]+(?:,[0-9]+)*(?:\.[0-9]+)?\s*(?:cm|mm)