当前位置:首页 > 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对象:

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());
}

分组捕获

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

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("\\.");

预编译优化

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

java如何使用正则表达式

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./?=&%-]+

分享给朋友:

相关文章

如何使用java

如何使用java

安装Java开发环境 下载并安装Java Development Kit(JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME指向JDK安装路径…

react路由如何使用

react路由如何使用

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

react如何使用ueditor

react如何使用ueditor

安装 UEditor 下载 UEditor 的官方版本,解压后将整个文件夹放入项目的 public 目录下。确保可以通过 URL 直接访问 UEditor 的资源文件,例如 public/uedito…

react如何使用link

react如何使用link

使用 Link 组件进行页面导航 在 React 中,Link 是 react-router-dom 提供的组件,用于在单页应用(SPA)中实现客户端路由导航,避免页面刷新。 安装 react-…

react如何使用图片

react如何使用图片

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

react如何使用sass

react如何使用sass

安装 Sass 依赖 在 React 项目中安装 sass 作为开发依赖: npm install sass --save-dev 或使用 Yarn: yarn add sass --dev 创建…