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

修改贪婪正则表达式:匹配第3个|后内容,无则取最后一个

解决方案

只需将原正则表达式替换为以下模式:

searching_root = r'(?:(?:[^|]*\|){3}|.*\|)(.*)$'

正则说明

  • (?:[^|]*\|){3}:匹配前三个|及其之前的所有内容(非捕获组),仅当字符串中|数量≥3时生效。
  • .*\|:当字符串中|数量不足3时,匹配到最后一个|及其之前的所有内容(非捕获组)。
  • (.*)$:捕获上述匹配之后的所有内容作为结果,对应原代码中的group(1)。

验证示例

针对你的测试数据:

  1. 含4个|的字符串:捕获第三个|之后的完整内容
  2. 含2个|的字符串:捕获最后一个|之后的内容
  3. 含多个|的字符串:捕获第三个|之后的完整内容
  4. 含3个|的字符串:捕获第三个|之后的内容

所有场景均符合需求,无需修改原函数逻辑,仅替换正则模式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:07:02