亲爱的编程爱好者们,你是否曾在处理字符串时感到头疼?别担心,今天我要给你介绍一个神奇的工具——正则表达式,它将让你的字符串处理变得轻松愉快!

正则表达式,简称Regex,是一种用于描述字符串模式的工具。它就像一把万能钥匙,能帮你轻松打开各种字符串处理的大门。而Java作为一门强大的编程语言,自然也内置了对正则表达式的支持。接下来,就让我带你一起探索Java正则表达式的奇妙世界吧!

一、正则表达式基础

正则表达式由字符和特殊符号构成,常见的符号包括:

- .:匹配任意单个字符(除换行符外)

- ^:匹配字符串的开始

- $:匹配字符串的结束

- :匹配前一个字符零次或多次

- :匹配前一个字符一次或多次

- ?:匹配前一个字符零次或一次

- n:匹配前一个字符恰好n次

- [abc]:字符集合,匹配集合中的任一字符

- |:或操作符,匹配两边的任一表达式

- ():分组,标记一部分正则表达式,供后续引用

二、字符类

字符类用于匹配特定范围的字符,常见的字符类如下:

- [abc]:代表a或者b,或者c字符中的一个

- [^abc]:代表除a,b,c以外的任何字符

- [a-z]:代表a-z的所有小写字符中的一个

- [A-Z]:代表A-Z的所有大写字符中的一个

- [0-9]:代表0-9之间的某一个数字字符

- [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符

- [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符

三、量词

量词用于指定匹配次数,常见的量词如下:

- :匹配零次或多次

- :匹配一次或多次

- ?:匹配零次或一次

- n:匹配恰好n次

- n,:匹配至少n次

- n,m:匹配至少n次,但不超过m次

四、正则表达式实例

1. 匹配邮箱地址

```java

String input = \Email addresses: alice@example.com, bob@gmail.com, charlie@domain.com\;

String regex = \b[w.-]@[w.-].com\;

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(input);

while (matcher.find()) {

System.out.println(matcher.group());

2. 匹配手机号码

```java

String input = \Phone numbers: 13800138000, 13912345678, 17712345678\;

String regex = \1[3-9]\\\\d{9}\;

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(input);

while (matcher.find()) {

System.out.println(matcher.group());

3. 匹配URL

```java

String input = \URLs: http://www.example.com, https://www.google.com, ftp://www.fileserver.com\;

String regex = \http[s]?://[\\\\w.-] \\\\.[a-z]{2,3}(/[\\\\w ./?%