Java正则表达式数字匹配,数字不能以0开头
时间: 2023-06-06 14:06:19 浏览: 99
可以使用以下正则表达式进行匹配:
^[1-9][0-9]*$
解释一下,^表示开头,$表示结尾,[1-9]表示第一位必须是1-9之间的数字,[0-9]*表示后面可以有0到多个数字,但第二个数字不能是0。因此,这个正则表达式可以匹配所有数字,但不能匹配以0开头的数字。
相关问题
java 正则表达式 匹配以a开头空格结尾的正则表达式
可以使用以下正则表达式来匹配以a开头空格结尾的字符串:
```
^a.*\s$
```
其中:
- `^` 表示以a开头
- `.*` 表示匹配任意字符 0 次或多次
- `\s` 表示匹配一个空格字符
- `$` 表示以空格结尾
注意,这个正则表达式匹配的是整个字符串,如果你只是想匹配其中的一部分,可以在正则表达式中加入适当的限制条件。
java正则表达式边界匹配
Java正则表达式中的边界匹配可以使用`\b`和`\B`来实现。
`\b`匹配单词字符(`\w`)和非单词字符(`\W`)之间的边界,也可以匹配字符串开头或结尾处的字边界上。
例如,如果我们有一个字符串"Hello World",我们可以使用`\b`来匹配单词"Hello"的边界:
```java
String str = "Hello World";Pattern pattern = Pattern.compile("\\bHello\\b");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println("匹配成功");
} else {
System.out.println("匹配失败");
}
```
输出结果为"匹配成功",因为"Hello"是一个单词,并且它的边界与`\b`匹配。
另一方面,`\B`匹配不得出现在字边界上的位置。例如,如果我们有一个字符串"HelloWorld",我们可以使用`\B`来匹配"Hello"后面的边界:
```java
String str = "HelloWorld";
Pattern pattern = Pattern.compile("Hello\\B");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println("匹配成功");
} else {
System.out.println("匹配失败");
}
```
输出结果为"匹配成功",因为"Hello"后面的位置不是一个字边界,与`\B`匹配。