You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式提取RST新闻文件中的变更级别与文本

搞定RST新闻里变更信息的正则提取问题

核心解决方向

要匹配带多行内容、含星号的变更文本,同时解决贪婪匹配的问题,关键是精准界定匹配的结束边界,搭配合适的正则模式调整。

实操方案

先假设你的RST文件中变更项是类似如下的格式:

新增: 支持多行文本的正则提取
这是第二行的续行内容
修复: 修复星号导致的匹配中断问题

可用正则表达式

^(\*\*[^\*]+\*\*):\s*(.*?)(?=\n^(\*\*[^\*]+\*\*):|\Z)

必须开启多行模式(MULTILINE)和单行模式(DOTALL/SINGLELINE),各部分作用说明:

  • ^(\*\*[^\*]+\*\*): 匹配开头的变更级别(比如新增、修复这类双星号包裹的标识),捕获为第一个分组
  • :\s*: 匹配冒号及后续的空白字符(包括换行)
  • (.*?): 非贪婪模式匹配变更文本,DOTALL模式下.会匹配换行符,完美支持多行内容;非贪婪特性避免过度匹配到下一个变更项
  • (?=\n^(\*\*[^\*]+\*\*):|\Z): 正向预查边界,当匹配到下一个变更级别开头或者文本末尾时立即停止,精准划分每个变更项的范围

灵活调整建议

  • 如果你的变更级别不是双星号包裹格式(比如- 新增:),直接修改第一个分组的匹配规则即可
  • 若RST中变更文本有固定缩进(比如4个空格),可以把边界预查规则细化为(?=\n^(?! )|\Z),避免误把续行识别为新的变更项

测试效果示例

输入RST内容:

新增: 支持多行文本的正则提取
解决了贪婪匹配的老问题
修复: 修复星号导致的匹配中断
优化了边界识别逻辑

开启指定模式后,会捕获到两组有效结果:

  1. 分组1:**新增**,分组2:支持*多行文本*的正则提取\n解决了贪婪匹配的老问题
  2. 分组1:**修复**,分组2:修复星号导致的匹配中断\n优化了边界识别逻辑

内容的提问来源于stack exchange,提问作者Bartek Lachowicz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:45:36