当前位置:首页 > Java

java如何使用正则表达式

2026-03-03 22:32:37Java

正则表达式基础语法

Java中正则表达式通过java.util.regex包实现,主要涉及PatternMatcher类。基本元字符包括:

  • \d 匹配数字,等价于 [0-9]
  • \w 匹配单词字符(字母、数字、下划线)
  • . 匹配任意单个字符(除换行符)
  • * 匹配前一个字符0次或多次
  • + 匹配前一个字符1次或多次
  • ? 匹配前一个字符0次或1次
  • {n} 精确匹配n次
  • ^ 匹配字符串开头
  • $ 匹配字符串结尾

创建Pattern对象

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

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

使用Matcher进行匹配

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

java如何使用正则表达式

Matcher matcher = pattern.matcher("123abc");
boolean isMatch = matcher.matches(); // 全字符串匹配
boolean findMatch = matcher.find();  // 查找子串匹配

常用匹配方法

  • matches():整个字符串必须完全匹配模式
  • find():在字符串中查找下一个匹配子串
  • group():返回匹配到的子串
  • start()/end():返回匹配位置的索引

示例代码:

String text = "订单号:12345,金额:¥888";
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(text);
while (m.find()) {
    System.out.println("找到数字: " + m.group());
}

分组捕获

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

java如何使用正则表达式

Pattern p = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})");
Matcher m = p.matcher("2023-05-20");
if (m.matches()) {
    System.out.println("年: " + m.group(1));  // 2023
    System.out.println("月: " + m.group(2));  // 05
    System.out.println("日: " + m.group(3));  // 20
}

字符串替换

使用replaceAll()replaceFirst()方法:

String result = "a1b2c3".replaceAll("\\d", "X");  // 输出 "aXbXcX"
String result2 = "a1b2c3".replaceFirst("\\d", "X"); // 输出 "aXb2c3"

特殊字符处理

需要转义的特殊字符包括:[ ] { } ( ) \ ^ $ | ? * + .

// 匹配真实的点号(.)需要转义
Pattern p = Pattern.compile("\\.");

预编译优化

频繁使用的正则表达式应该预编译:

private static final Pattern EMAIL_PATTERN = 
    Pattern.compile("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$");

常用正则示例

  • 邮箱验证:^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$
  • 手机号验证(中国):^1[3-9]\\d{9}$
  • 身份证号验证:^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[0-9Xx]$
  • URL提取:https?://[\\w./?=&%-]+

分享给朋友:

相关文章

react路由如何使用

react路由如何使用

React 路由的基本使用 React 路由通常通过 react-router-dom 库实现,用于管理单页面应用(SPA)中的页面导航。 安装 react-router-dom: npm ins…

react激光如何使用

react激光如何使用

安装React激光库 在项目中安装React激光库,通常通过npm或yarn完成。确保项目已初始化并具备React环境。 npm install react-laser-beam # 或 yar…

react filter如何使用

react filter如何使用

react filter 的基本用法 在 React 中,filter 通常用于筛选数组数据,常见于列表渲染或数据处理场景。filter 是 JavaScript 数组的原生方法,但在 React 中…

react 如何使用axios

react 如何使用axios

安装 axios 在 React 项目中安装 axios 依赖包: npm install axios # 或 yarn add axios 引入 axios 在需要发送 HTTP 请求的组件或文件…

react如何使用图片

react如何使用图片

在React中使用图片的方法 静态图片导入 在React组件中可以直接通过import导入图片文件,这种方式适用于已知的静态资源。导入后,图片会被处理为模块,可通过src属性引用。 import R…

react如何使用插件

react如何使用插件

使用插件的基本方法 在React项目中使用插件通常涉及安装、导入和集成三个主要环节。以下是具体操作方式: 安装插件通过npm或yarn完成。例如,要安装react-router-dom插件,可以运行…