正则匹配正整数 java
时间: 2023-08-10 10:33:15 浏览: 215
可以使用正则表达式 `[1-9]\d*` 来匹配正整数。其中,`[1-9]` 表示匹配 1-9 中的任意一个数字,`\d*` 表示匹配 0 个或多个数字。这个正则表达式可以匹配任何正整数,但不包括 0。例如,在 Java 中可以这样使用正则表达式:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String text = "123 0 456 -789";
Pattern pattern = Pattern.compile("[1-9]\\d*");
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
```
这里使用 `java.util.regex.Pattern` 类和 `java.util.regex.Matcher` 类来进行正则表达式的匹配。`Matcher.find()` 方法可以查找所有匹配的字符串,`Matcher.group()` 方法可以返回匹配的字符串。运行上述代码,可以输出:
```
123
456
```
相关问题
java正则表达式正整数
以下是Java中判断正整数的正则表达式:
```java
^[1-9]\\d*$
```
其中,^表示匹配字符串的开始位置,$表示匹配字符串的结束位置,[1-9]表示匹配1到9中的任意一个数字,\\d*表示匹配0个或多个数字,因此\\d*可以匹配任意非负整数,但是这里需要排除0,所以需要在[1-9]后面加上\\d*,表示匹配1到9之后可以跟0个或多个数字。
演示代码如下:
```java
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
String regex = "^[1-9]\\d*$";
String str1 = "123456";
String str2 = "0";
String str3 = "-123";
Pattern pattern = Pattern.compile(regex);
Matcher matcher1 = pattern.matcher(str1);
Matcher matcher2 = pattern.matcher(str2);
Matcher matcher3 = pattern.matcher(str3);
System.out.println(str1 + " is a positive integer: " + matcher1.matches()); // 输出:true
System.out.println(str2 + " is a positive integer: " + matcher2.matches()); // 输出:false
System.out.println(str3 + " is a positive integer: " + matcher3.matches()); // 输出:false
}
}
```
java正则表达式校验正整数
Java 正则表达式是用来匹配特定模式的一种工具,在 Java 中,可以使用 `java.util.regex` 包中的类如 `Pattern` 和 `Matcher` 来利用正则表达式来进行字符串匹配和搜索。
验证输入是否为非负整数(即正整数加上零),你可以使用以下的正则表达式:
```regex
^\\d+$
```
这条正则表达式的解释如下:
- `^` 表示字符串的开始。
- `\d` 是一个简化的表示法,用于匹配任意数字字符(等价于 `[0-9]`)。
- `+` 表示前面的元素(在这个例子中是 `\d`)可以出现一次或多次。
- `$` 表示字符串的结束。
因此,当这个正则表达式用于匹配某个字符串时,如果该字符串完全由数字组成,并且没有任何前导或后缀的空格、特殊字符等,那么它将返回一个匹配的对象,反之则不会找到匹配并返回 null。
接下来,我们将使用 Java 的 `Pattern` 类创建一个模式实例,并通过 `Matcher` 类来测试给定的输入字符串是否与正则表达式相匹配:
```java
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexExample {
public static void main(String[] args) {
String input = "12345";
// 创建正则表达式实例
Pattern pattern = Pattern.compile("^[\\d]+$");
// 对输入字符串进行匹配测试
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
System.out.println(input + " 是有效的非负整数。");
} else {
System.out.println(input + " 不是有效的非负整数。");
}
}
}
```
运行此程序会得到如下输出,确认输入是否满足条件:
```
12345 是有效的非负整数。
```
---
阅读全文