如何使用正则表达式在 Java 中按 1–45 范围内的编号分割文本

浅磊酱_6079

浅磊酱_6079

2026-11-14

988人浏览

原创

如何使用正则表达式在 Java 中按 1–45 范围内的编号分割文本

本文介绍如何用 java 正则表达式精准提取以 1–45 内数字(支持 "09" 或 "9" 等格式)开头的条款文本,并将其拆分为结构化字符串数组,避免误切、保留语义完整性。

本文介绍如何用 java 正则表达式精准提取以 1–45 内数字(支持 "09" 或 "9" 等格式)开头的条款文本,并将其拆分为结构化字符串数组,避免误切、保留语义完整性。

在处理标准条款、专利分类号、服务条目等结构化文本时,常遇到类似 09 Software... 37 Installation... 42 Supervision... 的格式——多个条目连续排列,以两位或一位数字编号分隔。若直接用 split("\d+"),会丢失编号信息且可能误切(如将 "driver assistance systems" 中的 1 或 2 当作分隔符)。更稳妥的做法是:先识别并捕获所有合法编号,再基于其位置进行非破坏性分割。

以下为推荐实现方案(兼顾准确性、可读性与鲁棒性):

JavaScript 开发专家
JavaScript 开发专家

掌握包含 ES6+、异步模式和 Node.js API 的现代 JavaScript。处理 Promise、事件循环和浏览器/Node 兼容性。在 JavaSc

下载

✅ 核心思路

  • 使用正则 (? 进行「零宽断言分割」,即在编号前切割,但不消耗字符;
  • 更简洁实用的做法:用 Pattern.compile("(? —— 利用 (? 确保编号前是非数字字符(避免匹配 123 中的 12),\b 保证编号边界清晰,0?[1-9]|1[0-9]|2[0-9]|3[0-9]|4[0-5] 精确覆盖 1–45(含前导零如 09)。

✅ 完整可运行代码示例

import java.util.*;
import java.util.regex.*;

public class ClauseSplitter {
    public static void main(String[] args) {
        String text = "09 Software for use in assisted driving of railway vehicles; " +
                      "software for electronic railway driving assistance systems; " +
                      "hardware for electronic railway driving assistance systems; " +
                      "driver assistance systems for railway vehicles. " +
                      "37 Installation and replacement services for railway vehicles, " +
                      "railway vehicles that incorporate driver assistance systems in the detection " +
                      "and avoidance of excessive speed, obstacles, vehicles and people; " +
                      "Software installation and replacement services for railway driving " +
                      "assistance systems and vehicle network coordination centers " +
                      "42 Supervision services for driving. assistance; systems for railway vehicles; " +
                      "checking railway vehicles; checking railway vehicles that incorporate " +
                      "driver assistance systems";

        // 正则:在 1–45 编号前的零宽位置分割(要求编号前后有合理边界)
        String regex = "(? result = new ArrayList();

        // 提取每个部分的编号 + 内容(去除开头空格/换行)
        for (String part : parts) {
            String trimmed = part.trim();
            if (!trimmed.isEmpty()) {
                // 尝试提取开头编号(用于验证/调试)
                Matcher numMatcher = Pattern.compile("^\b(?:0?[1-9]|1[0-9]|2[0-9]|3[0-9]|4[0-5])\b").matcher(trimmed);
                if (numMatcher.find()) {
                    result.add(trimmed); // 保留原始编号和后续内容
                }
            }
        }

        // 输出结果(符合题目要求的索引格式)
        for (int i = 0; i <h3>⚠️ 注意事项</h3>
  • 前导零兼容性:正则 0?[1-9]|1[0-9]|...|4[0-5] 明确支持 01, 09, 9, 37 等形式,不匹配 00、46 或 100;
  • 边界安全:\b 防止匹配 123 中的 12,(? 避免从字符串开头无前缀处错误触发(如 "12 abc" 开头可匹配,但 "abc12" 不会误切);
  • 空内容防护:split() 可能产生空字符串,务必 trim() + isEmpty() 过滤;
  • 性能提示:对超长文本,建议复用 Pattern.compile(...) 实例,避免重复编译。

✅ 输出效果(严格匹配题目要求)

index[0]=09 Software for use in assisted driving of railway vehicles; software for electronic railway driving assistance systems; hardware for electronic railway driving assistance systems; driver assistance systems for railway vehicles.
index[1]=37 Installation and replacement services for railway vehicles, railway vehicles that incorporate driver assistance systems in the detection and avoidance of excessive speed, obstacles, vehicles and people; Software installation and replacement services for railway driving assistance systems and vehicle network coordination centers
index[2]=42 Supervision services for driving. assistance; systems for railway vehicles; checking railway vehicles; checking railway vehicles that incorporate driver assistance systems

该方案兼顾精确性、可维护性与生产可用性,适用于法律条文、IPC 分类、技术规范等编号型文本解析场景。

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

java 正则表达式

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

12577

6

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

9662

9

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

2023.07.31

8212

8

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.01

1324

3

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.02

1048

3

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

1576

5

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

3289

5

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

2023.08.03

20531

3

配置java环境变量
配置java环境变量

配置Java环境变量是为了让操作系统能够识别和使用Java的相关命令和功能。本专题为大家提供配置java环境变量相关文章,帮助大家解决问题。

2023.08.03

1435

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习