java中怎么用正则表达式匹配字符串中是否包含手机号,身份证号和银行卡号
在Java中,可以使用正则表达式来匹配字符串中是否包含手机号、身份证号和银行卡号。以下是一个示例:
1. 首先,我们需要定义一个方法,该方法接受一个字符串参数,并使用正则表达式来检查字符串中是否包含手机号、身份证号和银行卡号。
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String input = "这是一个包含手机号的字符串:13800138000,这是一个包含身份证号的字符串:123456789012345678,这是一个包含银行卡号的字符串:6228480402564890018";
System.out.println(containsPhoneNumber(input));
System.out.println(containsIDCardNumber(input));
System.out.println(containsBankCardNumber(input));
}
public static boolean containsPhoneNumber(String input) {
String regex = "1[3-9]\\d{9}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
return matcher.find();
}
public static boolean containsIDCardNumber(String input) {
String regex = "\\d{17}[\\d|X]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
return matcher.find();
}
public static boolean containsBankCardNumber(String input) {
String regex = "\\d{16}|\\d{19}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
return matcher.find();
}
}
```
2. 在上面的代码中,我们定义了三个方法:`containsPhoneNumber()`、`containsIDCardNumber()` 和 `containsBankCardNumber()`。这些方法分别使用不同的正则表达式来匹配手机号、身份证号和银行卡号。
- `containsPhoneNumber()` 方法使用正则表达式 `1[3-9]\\d{9}` 来匹配手机号。这个正则表达式表示以数字1开头,第二位是3到9之间的任意数字,后面跟着9个数字。
- `containsIDCardNumber()` 方法使用正则表达式 `\\d{17}[\\d|X]` 来匹配身份证号。这个正则表达式表示17位数字,最后一位可以是数字或大写字母X。
- `containsBankCardNumber()` 方法使用正则表达式 `\\d{16}|\\d{19}` 来匹配银行卡号。这个正则表达式表示16位或19位数字。
3. 在 `main()` 方法中,我们调用这三个方法来检查输入字符串中是否包含手机号、身份证号和银行卡号,并将结果打印出来。
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!