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 正则表达式的基本语法、常见用法和示例。在实际开发中,正则表达式可以用于字符串匹配、替换、提取等操作,是一个非常实用的工具。