我有这个字符串[lat:50.000]
,我需要从中获取数字,但有时它的前面可能有一个连字符,因为它可能是一个减号。
我现在有这个正则表达式[\-]\d+(\.\d{1,10})?
然而它只会匹配数字,如果它在前面有连字符,我需要一个正则表达式,它将匹配和没有连字符。所以我会留下50.000
或某些情况-2.000
。
希望这是有道理的。
答案 0 :(得分:2)
您需要一个量词来表明连字符是可选的:
[\-]?\d+(\.\d{1,10})?
您还可以稍微改进表达式并将连字符从字符类中删除(因为它只是一个字符):
-?\d+(\.\d{1,10})?
答案 1 :(得分:1)
使用此正则表达式:\-?\d+\.\d{1,10}
答案 2 :(得分:1)
答案 3 :(得分:1)
还有一个:
(-?\d[\d.,]+)
# - or not (optional)
# followed by at least a digit
# followed by digits, dots and commas
答案 4 :(得分:0)
这是一个简单的表达式
\-?\d*\.?\d*