原始问题:
java中怎么用正则表达式匹配字符串中是否包含手机号,身份证号和银行卡号
在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();
}
}- 在上面的代码中,我们定义了三个方法:
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位数字。
- 在
main()方法中,我们调用这三个方法来检查输入字符串中是否包含手机号、身份证号和银行卡号,并将结果打印出来。
Prev:中国高质量发展的突出优势体现在哪些方面:创新驱动、产业升级与绿色发展