全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

提取以数字编号开头的代码块并合并后续注解标签的正则匹配方法

本文介绍如何使用正则表达式精准提取以“数字+点+空格”开头的代码段,并将紧随其后的 `@` 注解(如 `@autowired`、`@override` 等)自动归并到同一组中,解决多行逻辑分组问题。

在实际处理 Java 源码片段、文档注释或配置样例时,常遇到类似如下结构的文本:

1. @aut1.or
@Autowired
2. @Override
@param
@SuppressWarnings

目标是将语义上属于同一逻辑单元的内容(即编号项及其后续所有以 @ 开头的注解)聚合成独立字符串,例如:
['1. @aut1.or\n@Autowired', '2. @Override\n@param\n@SuppressWarnings']

原始正则 (?:[0-9][.][ ]).+ 仅匹配首行,因其基于行内贪婪匹配,无法跨行捕获后续关联行。正确思路应为:先定位编号起始行,再捕获其后所有连续的 @xxx 行,直到下一个编号或文本结束

但需注意:原始答案中提供的正则 r'(\d+. @\w+.\w+)|(@\w+)' 实际依赖扁平化单行输入(如 txt = '1. @aut1.or @Autowired 2. @Override @param ...'),不适用于真实换行文本,存在严重局限性。因此,我们推荐更鲁棒、符合实际场景的解决方案:

✅ 推荐方案:使用 re.split() + 分组聚合(支持真实多行)

import re

txt = '''1. @aut1.or
@Autowired
2. @Override
@param
@SuppressWarnings'''

# 步骤1:按编号行切分(保留分隔符以便识别归属)
parts = re.split(r'(\d+\.\s)', txt)
# parts 示例:['', '1. ', '@aut1.or\n@Autowired\n', '2. ', '@Override\n@param\n@SuppressWarnings']

# 步骤2:过滤空项,合并编号与后续内容
blocks = []
for part in parts:
    if re.match(r'\d+\.\s$', part):  # 编号行(含尾部空格)
        blocks.append(part.rstrip() + '\n')  # 存编号(去空格+换行)
    elif part.strip():  # 非空内容行(注解等)
        if blocks:
            blocks[-1] += part

# 清理末尾换行并输出
result = [block.rstrip('\n') for block in blocks if block.strip()]
print(result)
# 输出:
# ['1. @aut1.or\n@Autowired', '2. @Override\n@param\n@SuppressWarnings']

⚠️ 注意事项

  • 原答案的正则在换行文本中会失效,因其未启用 re.DOTALL 且未处理换行逻辑;
  • 若文本中存在无编号的孤立 @xxx 行,需额外逻辑过滤;
  • 如需兼容 1)、a. 等多种编号格式,可将 \d+\. 替换为更通用模式如 [\d a-z A-Z]+[.\)]\s;
  • 对超大文本,建议使用生成器逐块处理,避免内存压力。

该方法逻辑清晰、可读性强,兼顾准确性与可维护性,是处理此类“编号驱动多行分组”任务的推荐实践。


# java  # 正则表达式  # app  # red  # elif 


相关文章: 小型网站制作HTML,*游戏网站怎么搭建?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  如何通过.red域名打造高辨识度品牌网站?  高防服务器如何保障网站安全无虞?  网站专业制作公司有哪些,做一个公司网站要多少钱?  如何在腾讯云服务器快速搭建个人网站?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  招商网站制作流程,网站招商广告语?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  微信h5制作网站有哪些,免费微信H5页面制作工具?  C++如何使用std::optional?(处理可选值)  Java解压缩zip - 解压缩多个文件或文件夹实例  建站之星如何通过成品分离优化网站效率?  如何在自有机房高效搭建专业网站?  建站主机如何选?性能与价格怎样平衡?  手机网站制作与建设方案,手机网站如何建设?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  郑州企业网站制作公司,郑州招聘网站有哪些?  制作网站公司那家好,网络公司是做什么的?  学校为何禁止电信移动建设网站?  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何通过VPS建站无需域名直接访问?  香港服务器选型指南:免备案配置与高效建站方案解析  如何通过IIS搭建网站并配置访问权限?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  建站之星多图banner生成与模板自定义指南  简历在线制作网站免费版,如何创建个人简历?  太平洋网站制作公司,网络用语太平洋是什么意思?  定制建站策划方案_专业建站与网站建设方案一站式指南  如何在建站宝盒中设置产品搜索功能?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何在云指建站中生成FTP站点?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  建站ABC备案流程中有哪些关键注意事项?  如何在IIS7上新建站点并设置安全权限?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  网站制作服务平台,有什么网站可以发布本地服务信息?  成都网站制作报价公司,成都工业用气开户费用?  山东网站制作公司有哪些,山东大源集团官网?  建站上市公司网站建设方案与SEO优化服务定制指南  如何规划企业建站流程的关键步骤?  建设网站制作价格,怎样建立自己的公司网站?  如何在阿里云虚拟主机上快速搭建个人网站?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  模具网站制作流程,如何找模具客户?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。