正则中表示0个或1个的符号 ? 怎么使用啊!

我想只留负数,正数,小数,如这样:12364或-54654或123.121或-1231.1231,
而不是-1321....13..213这样的,正则怎么写?

只留负数,正数,小数理论上用这个就能匹配

^-?\d+(\.\d+)?$

如果你的是java语言,试试


String regex = "^-?\\d+(\\.\\d+)?$";
String number = "-54654";

if (number.matches(regex)) {
    System.out.println("匹配成功");
} else {
    System.out.println("匹配失败");
}
(\-){0,1}\d+(\.\d+){0,1}

你可以使用正则表达式来匹配只包含负数、正数和小数的数字。以下是一个简单的正则表达式示例:

/^-?\d+(\.\d+)?$/

这个正则表达式可以匹配以下三种类型的数字:
负数,例如 -1234。
正数,例如 1234。
小数,例如 123.456。
该正则表达式的含义如下:
^ 表示匹配字符串的开头。
-? 表示匹配一个可选的负号 -。
\d+ 表示匹配一个或多个数字。
(.\d+)? 表示匹配一个可选的小数点 . 和一个或多个数字。
$ 表示匹配字符串的结尾。
因此,这个正则表达式可以匹配只包含负数、正数和小数的数字,而不包含其他字符。例如:

var regex = /^-?\d+(\.\d+)?$/;

console.log(regex.test("-1234")); // true
console.log(regex.test("1234")); // true
console.log(regex.test("123.456")); // true
console.log(regex.test("-1231....13..213")); // false
console.log(regex.test("1.23.4")); // false
console.log(regex.test("abc")); // false