一、正则表达式概述

正则表达式(Regular Expression,简称 Regex)是一种强大的文本处理工具,在Java编程中,它被广泛应用于字符串匹配、查找、替换和提取等操作。掌握正则表达式,可以大大提高文本处理的效率和准确性。

二、Java正则表达式语法攻略

1. 字符类

  • [abc]:匹配字符 a、b 或 c。
  • [^abc]:匹配除了 a、b、c 之外的任何字符。
  • [a-z]:匹配小写字母 a 到 z 之间的任何字符。
  • [A-Z]:匹配大写字母 A 到 Z 之间的任何字符。
  • [0-9]:匹配数字 0 到 9 之间的任何字符。

2. 量词

  • *:匹配零个或多个前面的元素。
  • +:匹配一个或多个前面的元素。
  • ?:匹配零个或一个前面的元素。
  • {n}:匹配恰好 n 次前面的元素。
  • {n,}:匹配至少 n 次前面的元素。

3. 定位符

  • ^:匹配字符串的开始。
  • $:匹配字符串的结束。
  • <>:指定匹配的位置(如:<start> 表示匹配字符串的开始)。

4. 其他特殊字符

  • .:匹配任意单个字符(除了换行符)。
  • |:逻辑“或”。
  • \:转义字符。

三、实战案例分析

1. 电子邮件地址验证

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class EmailValidation {
    public static void main(String[] args) {
        String email = "example@example.com";
        String regex = "^[\\w.-]+@[\\w.-]+$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        if (matcher.matches()) {
            System.out.println("有效电子邮件地址");
        } else {
            System.out.println("无效电子邮件地址");
        }
    }
}

2. 电话号码提取

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class PhoneNumberExtraction {
    public static void main(String[] args) {
        String text = "联系电话:138-xxxx-xxxx";
        String regex = "\\d{3}-\\d{4}-\\d{4}";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);
        while (matcher.find()) {
            System.out.println("找到电话号码:" + matcher.group());
        }
    }
}

3. HTML标签清理

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class HtmlTagRemoval {
    public static void main(String[] args) {
        String html = "<div>这是一个 <b>HTML</b> 标签</div>";
        String regex = "<[^>]*>";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(html);
        String result = matcher.replaceAll("");
        System.out.println("清理后的文本:" + result);
    }
}

四、总结

通过本文的介绍,相信大家对Java正则表达式有了更深入的了解。在实际开发中,灵活运用正则表达式,可以轻松解决各种文本处理难题。