用正则表达式,验证只能是正整数或负整数或零,不能有小数
时间: 2023-09-20 19:09:06 浏览: 165
可以使用以下正则表达式进行验证:
```python
^-?\d+$
```
解释:
- `^` 匹配字符串的开头
- `-?` 匹配可选的负号 `-`
- `\d+` 匹配一个或多个数字
- `$` 匹配字符串的结尾
因此,这个正则表达式可以匹配以可选负号开头,后面跟着一个或多个数字的字符串,可以匹配正整数、负整数和零。如果有小数点或其他非数字字符,则不会匹配。
相关问题
用正则表达式验证只能是正整数、负整数、零,其他都不通过,请用java代码演示
以下是Java代码演示:
```java
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class IntegerValidator {
public static void main(String[] args) {
String[] testCases = {"123", "-456", "0", "1.23", "abc", "2e10"};
Pattern pattern = Pattern.compile("^-?\\d+$"); // 定义正则表达式,表示只能是正整数、负整数、零
for (String testCase : testCases) {
Matcher matcher = pattern.matcher(testCase);
System.out.printf("%s is %s%n", testCase, matcher.matches() ? "valid" : "invalid");
}
}
}
```
输出结果如下:
```
123 is valid
-456 is valid
0 is valid
1.23 is invalid
abc is invalid
2e10 is invalid
```
其中,`^` 和 `$` 分别表示匹配字符串的开头和结尾,`-?` 表示可选的负号,`\d+` 表示至少一个数字。
正则表达式限制只能输入正整数与小数
可以使用以下正则表达式来限制只能输入正整数与小数:
```
^[0-9]+(\.[0-9]+)?$
```
解释如下:
- `^` 表示匹配字符串的开头
- `[0-9]+` 表示匹配一个或多个数字
- `(\.[0-9]+)?` 表示一个可选的小数部分,其中 `\.` 表示匹配小数点, `[0-9]+` 表示匹配一个或多个数字
- `$` 表示匹配字符串的结尾
因此,以上正则表达式可以匹配以下示例字符串:
- 123
- 12.34
- 0.56
- 789.0123
但是,它将不匹配以下示例字符串:
- -123
- 12.34.56
- abc
- 1.2.3