用正则表达式验证只能是正整数、负整数、零,其他都不通过,请用java代码演示
时间: 2023-11-28 11:49:43 浏览: 107
以下是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+` 表示至少一个数字。
相关问题
用正则表达式,验证只能是正整数或负整数或零,不能有小数
可以使用以下正则表达式进行验证:
```python
^-?\d+$
```
解释:
- `^` 匹配字符串的开头
- `-?` 匹配可选的负号 `-`
- `\d+` 匹配一个或多个数字
- `$` 匹配字符串的结尾
因此,这个正则表达式可以匹配以可选负号开头,后面跟着一个或多个数字的字符串,可以匹配正整数、负整数和零。如果有小数点或其他非数字字符,则不会匹配。
java正整数正则表达式验证
可以使用如下的正则表达式来验证Java的正整数:
```java
String regex = "^\\+?[1-9][0-9]*$";
```
这个正则表达式的含义是:
- `^` 表示正则开始
- `\\+?` 表示可选的正号
- `[1-9]` 表示第一位必须是1到9之间的数字
- `[0-9]*` 表示后面可以跟0到任意个数字
- `$` 表示正则结尾
这个正则表达式可以匹配下面的字符串:
- "1"
- "42"
- "+999"
- "1234567890"
但是不能匹配下面的字符串:
- "0"
- "-42"
- "3.14"
- " 123"
希望这个回答可以帮助你解决问题!
阅读全文