Java正则表达式提取数字与去除数字的实用方法

沈知远
沈知远
发布时间:2026-10-14| 3人浏览过
原创

在Java开发的数据处理场景中,经常需要从包含混合字符的字符串中精准获取数字,或者反过来清除数字只保留文本。利用Java提供的java.util.regex包,通过正则表达式配合Pattern和Matcher类,可以高效且优雅地完成这两类任务。

结果与目标

我们需要解决两个典型场景:一是从如“哈哈,13888889999”这样的字符串中提取纯数字;二是从如“张三 13599998888”这样的字符串中去除数字,仅保留姓名等文本内容。这两种操作是数据清洗的基础步骤。

准备条件

确保项目环境已引入Java标准库(JDK 8及以上版本即可),无需额外依赖。核心涉及类为java.util.regex.Pattern和java.util.regex.Matcher。

真实操作顺序

第1步:通过替换非数字提取所有数字

目的:去除字符串中所有非数字字符,合并剩余部分得到纯数字串。

入口/动作:使用正则表达式[^0-9]匹配任意非0-9之间的字符,并将其替换为空字符串。

复制代码 代码如下:
@Test public void testExtractNumbers() { String phoneString = "哈哈,13888889999"; // 1. 编译模式:[^0-9] 表示匹配任何非数字字符 Pattern pattern = Pattern.compile("[^0-9]"); Matcher matcher = pattern.matcher(phoneString); // 2. 替换所有匹配项为空,即删除非数字 String allNumbers = matcher.replaceAll(""); System.out.println("提取的数字:" + allNumbers); // 输出: 13888889999 // 也可以简化为单行写法 String result = Pattern.compile("[^0-9]").matcher(phoneString).replaceAll(""); }

第2步:通过替换数字提取纯文本

目的:去除字符串中的所有阿拉伯数字,保留汉字、字母或其他符号。

入口/动作:使用正则表达式[\d]匹配单个数字字符,将其替换为空字符串,并注意处理后可能存在的多余空格需进行trim操作。

复制代码 代码如下:
@Test public void testRemoveNumbers() { // 原始数据包含中文名称和多个数字段 String r_name3 = "张三 13599998888 000000"; // 匹配任意单个数字 \d 等同于 [0-9] Pattern pattern = Pattern.compile("[\\d]"); Matcher matcher = pattern.matcher(r_name3); // 将匹配到的数字替换为空,并去除首尾可能的空格 String pureText = matcher.replaceAll("").trim(); System.out.println("去除数字后的文本:" + pureText); // 输出: 张三 }

完成判断

运行上述测试代码,控制台应正确输出提取后的纯数字串或清理后的纯文本串。若结果中包含预期外的字符或留白,请检查正则表达式是否符合当前字符集规范(例如是否需要兼容全角数字)。

简要总结

利用Pattern定义规则,Matcher执行替换是Java中正则处理的经典范式。掌握[^0-9]与[\d]这两个基础正则表达式,即可灵活应对绝大多数简单的数字提取与过滤需求。以上就是Java正则表达式提取数字与去除数字的详细内容,更多关于Java正则表达式操作的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。