当前位置:首页 > Java

java如何用正则

2026-03-22 05:53:18Java

正则表达式在Java中的基本使用

Java通过java.util.regex包提供正则表达式支持,核心类包括PatternMatcher。以下是基本用法:

定义正则表达式

String regex = "a*b"; // 匹配0个或多个a后接b
Pattern pattern = Pattern.compile(regex);

匹配字符串

Matcher matcher = pattern.matcher("aaab");
boolean matches = matcher.matches(); // 返回true

常用正则方法

字符串直接匹配

String input = "123abc";
boolean isMatch = input.matches("\\d+[a-z]+"); // 匹配数字+字母

查找多个匹配项

Matcher matcher = Pattern.compile("\\w+").matcher("Hello World");
while (matcher.find()) {
    System.out.println(matcher.group()); // 输出"Hello"和"World"
}

分组与捕获

提取分组内容

java如何用正则

Matcher m = Pattern.compile("(\\d{3})-(\\d{4})").matcher("123-4567");
if (m.matches()) {
    String areaCode = m.group(1); // "123"
    String localNum = m.group(2); // "4567"
}

命名分组(Java 7+)

Pattern p = Pattern.compile("(?<area>\\d{3})-(?<local>\\d{4})");
Matcher m = p.matcher("123-4567");
if (m.find()) {
    System.out.println(m.group("area")); // 输出"123"
}

替换操作

简单替换

String result = "a1b2c3".replaceAll("\\d", "X"); // "aXbXcX"

动态替换

java如何用正则

String output = "John Doe".replaceAll("(\\w+) (\\w+)", "$2, $1"); // "Doe, John"

常用正则模式示例

验证邮箱格式

boolean isValidEmail = "user@example.com".matches("[\\w.-]+@[\\w.-]+\\.[a-z]{2,}");

提取HTML标签内容

Pattern tagPattern = Pattern.compile("<title>(.+?)</title>");
Matcher tagMatcher = tagPattern.matcher("<title>Example</title>");
if (tagMatcher.find()) {
    System.out.println(tagMatcher.group(1)); // 输出"Example"
}

性能优化建议

预编译常用正则表达式:

private static final Pattern DATE_PATTERN = Pattern.compile("\\d{4}-\\d{2}-\\d{2}");

避免贪婪匹配导致的性能问题:

// 使用非贪婪量词
Pattern.compile("<div>.+?</div>"); // 而非".+"

标签: 正则如何用
分享给朋友:

相关文章

如何用VUE实现倍速

如何用VUE实现倍速

使用Vue实现视频倍速播放 在Vue中实现视频倍速播放可以通过HTML5的<video>元素和Vue的数据绑定功能来完成。以下是实现方法: 安装Vue 确保项目中已经安装Vue。如果没有…

vue正则实现注册登录

vue正则实现注册登录

实现注册登录的正则验证 在Vue中实现注册登录功能时,正则表达式常用于验证用户输入的有效性。以下是常见的验证场景和对应的实现方法。 用户名验证 用户名通常要求包含字母、数字或下划线,长度在3-16个…

如何用react做增删

如何用react做增删

使用React实现增删功能 在React中实现增删功能通常涉及状态管理和列表渲染。以下是一个完整的实现方案: 初始化状态 需要定义一个状态来存储列表数据,可以使用useState钩子: c…

如何用react写轮播

如何用react写轮播

使用React实现轮播组件 基本结构 创建一个基础的轮播组件需要管理当前显示的幻灯片索引和切换逻辑。使用useState来跟踪当前激活的幻灯片。 import React, { useState }…

React如何用按钮更换组件

React如何用按钮更换组件

使用状态管理切换组件 在React中,可以通过状态管理动态切换组件。创建一个状态变量存储当前显示的组件,通过按钮点击事件更新该状态。 import React, { useState } f…

react如何用ts写高阶组件

react如何用ts写高阶组件

使用 TypeScript 编写 React 高阶组件(HOC) 基本高阶组件结构 高阶组件(HOC)是一个函数,接收一个组件并返回一个新的组件。以下是 TypeScript 的基本实现方式: im…