0

这是我创建的模式,用于接受具有 5 个整数和 2 个十进制数的十进制数。

String pattern = "[0-9]{0,5}+([" + ds + "]{1}||[" + ds + "]{1}[0-9]{1,2})?";

ds是十进制格式符号。

如何修改它以接受负数?

谢谢。

4

4 回答 4

1
String pattern = "[-+]?[0-9]{0,5}([.]{1}[0-9]{1,2})?"
于 2012-05-30T09:09:28.273 回答
1

[-+]?在前面,把你有的放在中间()

如果我写正则表达式,我会这样写:[-+]?(\\d{0,5}\\.\\d{1,2}|\\d{1,5}\\.\\d{0,2})

它将匹配这些边界情况:

.5
6.
.43
0.
05.50

但它会拒绝.

于 2012-05-29T10:34:27.067 回答
0

假设负数以“-”号开头,您只需将其放在开头:

String pattern = "-?([0-9]{0,5}+([" + ds + "]{1}||[" + ds + "]{1}[0-9]{1,2})?)";

请注意,我没有检查模式其余部分的有效性,只是展示了如何在其他所有内容之前添加减号。

于 2012-05-29T10:33:54.287 回答
0

尝试这个。

String pattern = "^[-+]?\d{1,5}(\.\d{1,2})?$";
于 2012-05-29T10:36:53.907 回答