我想只留负数,正数,小数,如这样: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