java 正则表达式判断字符串为数字且长度只能为8或者20位
时间: 2023-11-15 19:09:38 浏览: 178
可以使用如下正则表达式来判断字符串是否为数字且长度为8或20位:
```
^(\\d{8}|\\d{20})$
```
这个正则表达式中,`^` 表示匹配字符串的开头,`$` 表示匹配字符串的结尾,`\\d` 表示匹配数字,`{8}` 和 `{20}` 表示匹配前面的数字字符重复出现8次或20次。`|` 表示或者。
你可以使用 java 中的 `String.matches()` 方法来进行匹配,如下所示:
```java
String str = "12345678";
if (str.matches("^(\\d{8}|\\d{20})$")) {
System.out.println("符合要求");
} else {
System.out.println("不符合要求");
}
```
输出结果为:
```
符合要求
```
再举个例子:
```java
String str = "1234567890";
if (str.matches("^(\\d{8}|\\d{20})$")) {
System.out.println("符合要求");
} else {
System.out.println("不符合要求");
}
```
输出结果为:
```
不符合要求
```
相关问题
java 用正则表达式判断字符串是否是数字
可以使用正则表达式来判断一个字符串是否为数字,Java中常见的正则表达式为"\\d+",表示匹配一个或多个数字。
下面是一个示例代码:
```java
public static boolean isNumeric(String str) {
if (str == null || str.length() == 0) {
return false;
}
return str.matches("\\d+");
}
```
其中,参数str为需要判断的字符串。如果该字符串为空或长度为0,则返回false。使用String的matches()方法,传入正则表达式"\\d+",如果字符串匹配成功则返回true,否则返回false。
java代码使用正则表达式限制字符串只能是18位的数字加字母
您可以使用以下正则表达式来限制字符串只能是18位的数字加字母:
```java
String regex = "^[a-zA-Z0-9]{18}$";
```
这个正则表达式的含义是:
- `^`:表示匹配字符串的开始位置
- `[a-zA-Z0-9]`:表示匹配任意一个字母(大小写不限)或数字
- `{18}`:表示前面的字符必须出现18次
- `$`:表示匹配字符串的结束位置
您可以使用`String.matches()`方法来判断一个字符串是否符合该正则表达式,例如:
```java
String input = "Abc1234567890xyz";
boolean isValid = input.matches(regex);
System.out.println(isValid); // 输出 true
```
如果输入字符串的长度不是18位或包含除字母和数字以外的字符,`isValid`将会是 `false`。
阅读全文