如何编写正则表达式来扫描输入是否为带符号的小数?
例如:
-1.234567
-.1234567
123456789
1.2345678
1234567.8
-1234.567
输入长度必须为9.
答案 0 :(得分:2)
您为什么使用RegEx?有更好的方法来确定字符串是否已签名。
使用decimal.TryParse()
和Math.Sign()
来获得答案。
string input = "-1.2342";
decimal decValue;
bool isDecimal = decimal.TryParse(input, out decValue);
if (isDecimal)
{
int signValue = Math.Sign(decValue);
}
else
{
throw new Exception("Not a valid decimal!");
}
答案 1 :(得分:0)
你可以这么做:
([-\d]\d\.\d\d\d\d\d\d|[-\d]\d\d\.\d\d\d\d\d|[-\d]\d\d.\d\d\d\d|...)
基本上,这是您列出的任何形式的OR-ed。这是相当繁琐的,但现在我想不出任何其他方式可以用于所有可能的输入。