【发布时间】:2016-07-15 01:23:32
【问题描述】:
我有这个字符串[lat:50.000],我需要从中取出数字,但有时它前面可能有一个连字符,因为它可能是一个负数。
我现在有这个正则表达式[\-]\d+(\.\d{1,10})? 但是它只会匹配前面有连字符的数字,我需要一个正则表达式来匹配它有和没有连字符。所以我会留下50.000 或在某些情况下-2.000。
希望这是有道理的。
【问题讨论】:
标签: regex
我有这个字符串[lat:50.000],我需要从中取出数字,但有时它前面可能有一个连字符,因为它可能是一个负数。
我现在有这个正则表达式[\-]\d+(\.\d{1,10})? 但是它只会匹配前面有连字符的数字,我需要一个正则表达式来匹配它有和没有连字符。所以我会留下50.000 或在某些情况下-2.000。
希望这是有道理的。
【问题讨论】:
标签: regex
您需要一个量词来说明连字符是可选的:
[\-]?\d+(\.\d{1,10})?
你也可以稍微改进一下表达式,把连字符从字符类中去掉(因为它只是一个字符):
-?\d+(\.\d{1,10})?
【讨论】:
-?
使用这个正则表达式:\-?\d+\.\d{1,10}
【讨论】:
【讨论】:
还有一个:
(-?\d[\d.,]+)
# - or not (optional)
# followed by at least a digit
# followed by digits, dots and commas
【讨论】:
这是一个简单的表达式
\-?\d*\.?\d*
【讨论】: