java中正数和负数十进制的正则表达式

时间:2010-01-15 14:29:50

标签: java regex

正负十进制值的正则表达式,以便可以 使用模式和匹配器与字符串匹配以正确实现 任何人都可以为我提供

4 个答案:

答案 0 :(得分:13)

(\+|-)?([0-9]+(\.[0-9]+))

答案 1 :(得分:7)

试试吧!我也用过这种方式

"^-?[0-9]{1,12}(?:\.[0-9]{1,4})?$"

规则:

ex: ^-?[0-9]{1,12}(?:\.[0-9]{1,4})?$
^           # Start of string
[0-9]{1,12} # Match 1-12 digits (i. e. 0-999999999999)
(?:         # Try to match...
\.          # a decimal point
[0-9]{1,4}  # followed by one to three digits (i. e. 0-9999)
)?          # ...optionally
$            # End of string

答案 2 :(得分:3)

试试这个:

[+-]?\d+\.\d+

答案 3 :(得分:1)

+ (BOOL)isStringADecimalNumber:(NSString *)string
{
    NSString *regex = @"([+]|-)?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))";

    NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

    BOOL stringIsADecimalNumber = [test evaluateWithObject:string];

    return stringIsADecimalNumber;
}

下面突出显示的是此正则表达式返回 TRUE 的数字: enter image description here enter image description here