欢迎访问宙启技术站
智能推送

Java正则表达式函数完美应用

发布时间:2023-06-06 09:56:21

Java正则表达式是一种文本处理的强有力工具,可以用于字符串匹配、替换、分解和检查等多种操作。在Java中,使用正则表达式需要使用java.util.regex包提供的类和接口,其中最重要的是Pattern和Matcher类。

Pattern类用于创建正则表达式模式,其中提供了一系列静态方法,用于编译创建正则表达式模式,并返回一个Pattern对象。常用的静态方法有compile(String regex)和matches(String regex, CharSequence input)。

Matcher类用于匹配正则表达式模式和目标字符串,Matcher类的实例都是由Pattern类创建的,其中提供了一系列方法,用于匹配正则表达式模式和目标字符串,并返回一个布尔值表示是否匹配成功。常用的方法有find()和find(int start)。

下面将介绍Java正则表达式的一些常用应用场景:

1. 验证手机号码

手机号码是11位数字,以1开头,可以分为3-4-4位进行显示。可以使用下面的正则表达式验证手机号码。

boolean isMobile(String number) {
    String pattern = "^1[3|4|5|8][0-9]\\d{4,8}$";
    return number.matches(pattern);
}

2. 验证邮箱地址

可以使用下面的正则表达式验证邮箱地址。

boolean isEmail(String email) {
    String pattern = "^(\\w)+(\\.-]?\\w+)*@(\\w)+(\\.(\\w)+)+$";
    return email.matches(pattern);
}

3. 提取网页中的链接

可以使用下面的正则表达式提取网页中的链接。

List<String> getLinks(String html) {
    List<String> links = new ArrayList<>();
    String pattern = "<a[^>]*\\s*href\\s*=\\s*\"([^\"]*)\"";
    Pattern r = Pattern.compile(pattern);
    Matcher m = r.matcher(html);
    while (m.find()) {
        links.add(m.group(1));
    }
    return links;
}

4. 提取手机号码

可以使用下面的正则表达式提取手机号码。

List<String> getMobiles(String text) {
    List<String> mobiles = new ArrayList<>();
    String pattern = "[1]\\d{10}";
    Pattern r = Pattern.compile(pattern);
    Matcher m = r.matcher(text);
    while (m.find()) {
        mobiles.add(m.group());
    }
    return mobiles;
}

5. 替换敏感词

可以使用下面的正则表达式替换敏感词。

String replaceWords(String text) {
    String pattern = "(色情|赌博|毒品|暴力|淫秽)";
    Pattern r = Pattern.compile(pattern);
    Matcher m = r.matcher(text);
    String result = m.replaceAll("***");
    return result;
}

Java正则表达式的应用广泛,可以用于字符串匹配、替换、分解和检查等多种操作。在实际开发中,如果能巧妙使用正则表达式,不仅可以提高开发效率,还能使代码更加简洁高效。