正则表达式是一种强大的字符串匹配和搜索工具,用于在文本中查找、匹配和操作符合某种模式的字符串。在 Java 中,正则表达式主要由 java.util.regex 包提供支持。以下是一个简要的 Java 正则表达式教程:

1. 基本概念:
正则表达式是由字符和操作符构成的字符串,用于描述文本模式。例如,表达式 \d{3}-\d{2}-\d{4} 可以匹配美国的社会安全号码。

2. 常用字符类:
  •  \d: 匹配任意数字(0-9)。

  •  \D: 匹配任意非数字字符。

  •  \w: 匹配任意字母、数字或下划线。

  •  \W: 匹配任意非字母、数字或下划线字符。

  •  \s: 匹配任意空白字符。

  •  \S: 匹配任意非空白字符。


3. 量词:
  •  *: 匹配前面的元素零次或多次。

  •  +: 匹配前面的元素一次或多次。

  •  ?: 匹配前面的元素零次或一次。

  •  {n}: 匹配前面的元素恰好 n 次。

  •  {n,}: 匹配前面的元素至少 n 次。

  •  {n,m}: 匹配前面的元素至少 n 次但不超过 m 次。


4. 字符和字符类:
  •  .: 匹配任意字符(除了换行符 \n)。

  •  [abc]: 匹配 a、b 或 c 中的任意一个字符。

  •  [^abc]: 匹配除了 a、b 和 c 以外的任意字符。


5. 边界匹配:
  •  ^: 匹配字符串的开始。

  •  $: 匹配字符串的结束。

  •  \b: 匹配单词边界。

  •  \B: 匹配非单词边界。


6. 分组和引用:
  •  (...): 用于创建一个捕获组。

  •  \1, \2, ...: 用于在正则表达式中引用捕获组。


7. 示例代码:
import java.util.regex.*;

public class RegexExample {
    public static void main(String[] args) {
        String text = "The phone number is 123-45-6789.";

        // 匹配美国社会安全号码
        String pattern = "\\d{3}-\\d{2}-\\d{4}";

        Pattern r = Pattern.compile(pattern);
        Matcher matcher = r.matcher(text);

        if (matcher.find()) {
            System.out.println("Found: " + matcher.group(0));
        } else {
            System.out.println("Not Found");
        }
    }
}

这只是 Java 正则表达式的入门,正则表达式的语法非常灵活,可以满足多种匹配需求。深入学习正则表达式可以提高文本处理的效率。


转载请注明出处:http://www.zyzy.cn/article/detail/452/Java