当前位置:首页 > Java

java 如何使用正则

2026-03-21 10:39:12Java

正则表达式基础语法

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

  • \d匹配数字,\w匹配单词字符(字母、数字、下划线)
  • [abc]匹配a、b或c中的任意一个字符
  • ^匹配行首,$匹配行尾
  • *表示0次或多次,+表示1次或多次,?表示0次或1次

创建Pattern对象

通过Pattern.compile()方法编译正则表达式:

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

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

使用Matcher进行匹配

通过matcher()方法创建Matcher对象进行匹配操作:

java 如何使用正则

Matcher matcher = pattern.matcher("123abc");
boolean isMatch = matcher.find(); // 返回true,因为字符串包含数字
String matchedText = matcher.group(); // 返回"123"

常用匹配方法

matches():整个字符串完全匹配正则

boolean fullMatch = "123".matches("\\d+"); // true

find():查找下一个匹配的子串 group():获取当前匹配的子串 replaceAll():替换所有匹配项

String result = "a1b2".replaceAll("\\d", "-"); // 结果为"a-b-"

分组捕获

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

java 如何使用正则

Pattern p = Pattern.compile("(\\d+)-(\\w+)");
Matcher m = p.matcher("123-abc");
if (m.matches()) {
    String part1 = m.group(1); // "123"
    String part2 = m.group(2); // "abc"
}

边界匹配

\b匹配单词边界:

Pattern.compile("\\bcat\\b").matcher("cat category").find(); // 只匹配第一个"cat"

预编译优化

对于频繁使用的正则表达式,建议预编译Pattern对象:

private static final Pattern EMAIL_PATTERN = 
    Pattern.compile("^[\\w.-]+@[\\w.-]+\\.[a-z]{2,6}$", Pattern.CASE_INSENSITIVE);

特殊字符处理

当正则中包含特殊字符时,使用Pattern.quote()进行转义:

String literal = Pattern.quote("$5.00"); // 转义为"\Q$5.00\E"

分享给朋友:

相关文章

react如何使用dispatch

react如何使用dispatch

使用 useDispatch 钩子 在函数组件中,通过 react-redux 提供的 useDispatch 钩子获取 dispatch 函数。引入 useDispatch 后直接调用即可:…

react 如何使用fiber

react 如何使用fiber

使用 React Fiber 的方法 React Fiber 是 React 16 引入的重新实现的协调算法,用于优化渲染性能。以下是使用 Fiber 的方法。 理解 React Fiber 的核心…

react中如何使用echarts

react中如何使用echarts

安装 ECharts 依赖 在 React 项目中安装 ECharts 核心库和 React 封装库。使用 npm 或 yarn 安装: npm install echarts echarts-fo…

react-router如何使用

react-router如何使用

React Router 的基本用法 安装 React Router 的依赖包: npm install react-router-dom 在应用中引入必要的组件: import { Browse…

React的isMounted如何使用

React的isMounted如何使用

isMounted的使用方法 React的isMounted方法曾用于检查组件是否已挂载到DOM中,但该方法已被弃用。官方推荐使用其他方式替代。 替代方案 使用useRef和useEffect组合实…

react中如何使用ajax

react中如何使用ajax

在React中使用AJAX React本身不提供AJAX功能,但可以通过以下几种方式实现AJAX请求: 使用原生fetch API fetch是现代浏览器内置的API,无需额外安装库即可使用: f…