aiaiask.com©

开花即结果 提问即答案

java中怎么用正则表达式匹配字符串中是否包含手机号,身份证号和银行卡号
原始问题:

java中怎么用正则表达式匹配字符串中是否包含手机号,身份证号和银行卡号

在Java中,可以使用正则表达式来匹配字符串中是否包含手机号、身份证号和银行卡号。以下是一个示例:

  1. 首先,我们需要定义一个方法,该方法接受一个字符串参数,并使用正则表达式来检查字符串中是否包含手机号、身份证号和银行卡号。
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();
    }
}
  1. 在上面的代码中,我们定义了三个方法: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位数字。
  1. main() 方法中,我们调用这三个方法来检查输入字符串中是否包含手机号、身份证号和银行卡号,并将结果打印出来。
java中怎么用正则表达式匹配字符串中是否包含手机号,身份证号和银行卡号
AI / 模型Siliconflow
时间 / DATEOctober 31, 2023, 1:46 PM
语言zh-CN
IP / 区域江苏 南京