Java 正则表达式


Java 正则表达式技术文档

正则表达式是一种文本匹配的工具,Java 也为我们提供了强大的正则表达式功能,可以用于字符串匹配、替换、提取等操作。本文将全面介绍 Java 正则表达式的语法、常见用法和示例。

基本语法

正则表达式是由特殊字符和普通字符组成的字符序列,其基本语法如下:

pattern.matcher(input).matches();

其中, pattern 是正则表达式模式, input 是需要进行匹配的字符串, matches() 方法可以判断 input 是否与 pattern 匹配。

下面列出 Java 正则表达式中的特殊字符及其含义:

特殊字符 含义
. 匹配任意一个字符
* 匹配前一个字符出现 0 次或多次
+ 匹配前一个字符出现 1 次或多次
? 匹配前一个字符出现 0 次或 1 次
[] 匹配方括号内的任意一个字符
[^] 匹配非方括号内的任意一个字符
^ 匹配字符串开头
$ 匹配字符串结尾
() 将括号内的表达式作为一个分组

常见用法

匹配

匹配功能是正则表达式最常见的用法之一,可以用来验证一个字符串是否符合某个模式。

下面是一个简单的示例,验证一个字符串是否为 IP 地址:

String pattern = "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$";
String input = "192.168.1.1";
boolean isMatch = input.matches(pattern); // true

替换

替换功能可以将一个字符串中匹配某个正则表达式的部分进行替换。

下面是一个示例,将一个字符串中的所有空格替换成逗号:

String pattern = "\\s+";
String input = "1 2 3 4 5";
String output = input.replaceAll(pattern, ","); // 1,2,3,4,5

分割

分割功能可以将一个字符串按照某个正则表达式进行分割,得到一个字符串数组。

下面是一个示例,将一个字符串按照逗号分割成字符串数组:

String pattern = ",";
String input = "1,2,3,4,5";
String[] parts = input.split(pattern); // ["1", "2", "3", "4", "5"]

示例

下面是几个常见的正则表达式示例:

匹配邮箱地址

String pattern = "\\w+@\\w+\\.\\w+";
String input = "example@example.com";
boolean isMatch = input.matches(pattern); // true

匹配手机号码

String pattern = "1[3456789]\\d{9}";
String input = "13912345678";
boolean isMatch = input.matches(pattern); // true

匹配日期

String pattern = "\\d{4}-\\d{2}-\\d{2}";
String input = "2022-01-01";
boolean isMatch = input.matches(pattern); // true

总结

本文介绍了 Java 正则表达式的基本语法、常见用法和示例。在实际开发中,正则表达式可以用于字符串匹配、替换、提取等操作,是一个非常实用的工具。