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

使用RegEx正则提取存在冒号时对应位置目标字符串的实现方法

正则实现方案

直接上兼容绝大多数正则引擎(JS/Java/Python标准re/Go等)的写法,覆盖提到的全部三种场景,不需要额外写分支判断逻辑。

可用正则表达式

如果待处理内容带示例里的<li>、<strong>类HTML标签:

<li>(?:[^:]*:\s*<strong>([^<]+)<\/strong>|<strong>([^<]+)<\/strong>\s*:.*|<strong>([^<]+)<\/strong>)\s*<\/li>

如果是无HTML标签的纯文本场景,用简化版即可:

^(?:[^:]*:\s*(.+)|(.+?)\s*:.*|(.+))$

提取规则:三个捕获组中取非空的那个值,就是需要的目标字符串。

匹配逻辑说明

正则内三个分支按优先级匹配,分别对应三种场景:

  • 第一个分支匹配冒号在目标内容前的情况:比如SX: 22AA 001 267,直接捕获冒号后的目标内容
  • 第二个分支匹配冒号在目标内容后的情况:比如2294 0BB 267: 09,直接捕获冒号前的目标内容
  • 第三个分支匹配整段无冒号的情况:比如2294 0CC 267,直接捕获整段目标内容

测试验证结果

用给出的三个样例测试,返回结果如下:

  • 样例1 SX: <strong>22AA 001 267</strong>:捕获组1返回22AA 001 267
  • 样例2 <strong>2294 0BB 267</strong>: 09:捕获组2返回2294 0BB 267
  • 样例3 <strong>2294 0CC 267</strong>:捕获组3返回2294 0CC 267

示例中标注的预期输出2294 001 267应为笔误,如果需要把提取内容里的AA/BB/CC类字符替换为指定值,在正则提取后加一步简单字符串替换即可,不建议把这类逻辑写在正则里,维护成本太高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:01:05