当前位置:首页 > Java

java 如何用正则表达式

2026-03-03 22:31:07Java

正则表达式基础语法

Java中的正则表达式基于java.util.regex包实现,主要使用PatternMatcher类。基本语法与其他语言类似:

  • \d 匹配数字,等价于 [0-9]
  • \w 匹配字母、数字或下划线
  • \s 匹配空白字符(空格、制表符等)
  • . 匹配任意字符(除换行符外)
  • * 匹配前一个字符0次或多次
  • + 匹配前一个字符1次或多次
  • ? 匹配前一个字符0次或1次
  • {n} 匹配前一个字符恰好n次
  • ^ 匹配字符串开头
  • $ 匹配字符串结尾

创建Pattern对象

使用Pattern.compile()方法编译正则表达式:

Pattern pattern = Pattern.compile("\\d+"); // 匹配一个或多个数字

注意Java字符串中需要对反斜杠进行转义,因此正则中的\d需写成\\d

使用Matcher匹配

通过Pattern.matcher()方法创建Matcher对象:

java 如何用正则表达式

Matcher matcher = pattern.matcher("123 abc 456");

常用Matcher方法:

  • matches():整个字符串是否匹配
  • find():查找下一个匹配项
  • group():获取当前匹配内容
  • start()/end():获取匹配位置

常用匹配示例

验证邮箱格式:

java 如何用正则表达式

String emailRegex = "^[\\w.-]+@[\\w.-]+\\.[a-z]{2,}$";
Pattern emailPattern = Pattern.compile(emailRegex, Pattern.CASE_INSENSITIVE);

提取字符串中的数字:

Pattern numPattern = Pattern.compile("\\d+");
Matcher numMatcher = numPattern.matcher("Price: 100, Quantity: 5");
while(numMatcher.find()) {
    System.out.println(numMatcher.group());
}

分组捕获

使用括号()创建捕获组:

Pattern datePattern = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})");
Matcher dateMatcher = datePattern.matcher("2023-05-15");
if(dateMatcher.matches()) {
    String year = dateMatcher.group(1);  // 2023
    String month = dateMatcher.group(2); // 05
    String day = dateMatcher.group(3);   // 15
}

字符串替换

使用replaceAll()方法进行正则替换:

String text = "foo123bar456";
String replaced = text.replaceAll("\\d+", "NUM"); // "fooNUMbarNUM"

性能优化建议

  • 频繁使用的正则表达式应编译为Pattern对象并复用
  • 简单字符串操作优先使用String方法而非正则
  • 避免过度复杂的正则表达式
  • 考虑预编译模式:static final Pattern PATTERN = Pattern.compile(...)

分享给朋友:

相关文章

如何用java

如何用java

用Java实现基础功能 Java是一种广泛使用的编程语言,适用于开发各种应用程序。以下是几个常见功能的实现方法。 打印"Hello, World!" public class HelloWorld…

如何用java编程

如何用java编程

Java编程基础指南 环境配置 安装Java开发工具包(JDK),推荐使用最新版本。配置环境变量,确保JAVA_HOME指向JDK安装路径,并将bin目录添加到系统PATH中。验证安装是否成功: j…

react如何用jq

react如何用jq

在React中使用jQuery React和jQuery可以一起使用,但需要注意两者的DOM操作方式不同。React使用虚拟DOM,而jQuery直接操作真实DOM。混合使用时需谨慎避免冲突。 安装…

如何用react做分页

如何用react做分页

使用 React 实现分页功能 分页是 Web 开发中常见的需求,React 可以通过状态管理和组件化轻松实现分页功能。以下是实现分页的几种方法。 基础分页实现 定义状态 使用 useState…

后端路由框架里react如何用

后端路由框架里react如何用

React 后端路由框架使用指南 React 本身是一个前端库,通常与后端路由框架(如 Express、Koa 或 Next.js)结合使用。以下是几种常见场景下的使用方法: 使用 Express…

React如何用canvas画出人脸

React如何用canvas画出人脸

使用React和Canvas绘制人脸 在React中使用Canvas绘制人脸可以通过以下方法实现。这里以绘制一个简化的人脸为例,涵盖基本的脸部轮廓、眼睛、鼻子和嘴巴。 创建Canvas组件 创建一个…