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

正则匹配首个非URL片段至|字符 支持带空格文本及贪婪匹配

正则匹配需求说明

待匹配文本样例:

https://stackoverflow.com | https://google.com | first text to match | 
    https://randomsite.com | https://randomurl2.com | text | https://randomsite.com | 
    https://randomsite.com | https://randomsite.com |

核心匹配规则:

  • 匹配字符串中第一个非URL序列,范围截止到该序列后的|字符,上述样例期望匹配结果为:
https://stackoverflow.com | https://google.com | first text to match |
  • 原有正则/^(.*)[|]\s(\b\w*\b)?\s[|]/gm存在缺陷:仅支持无空格的非URL字符串匹配,遇到first text to match这类带空格的内容会匹配失败,需要同时兼容带空格、无空格的非URL文本场景
  • 额外支持贪婪匹配模式:可匹配全部内容直到出现text |为止

可用正则方案

基础匹配模式(匹配首个非URL段到对应结束|)

正则表达式:

/^.*?\|\s*[^|]*?\|/gm

逻辑拆解:

  • ^ 锚定行起始位置,避免跨行乱匹配
  • .*?\| 非贪婪匹配所有前置URL段,直到命中非URL段前的最后一个|分隔符
  • \s* 兼容分隔符和非URL内容之间的任意空白字符
  • [^|]*? 匹配非URL段的全部内容:因为各段用|分隔,非URL段内部不会出现|,不管内容有没有空格都能完整捕获
  • \| 匹配非URL段后的结束分隔符,刚好卡到要求的匹配截止位置

贪婪匹配模式(匹配到text |位置为止)

正则表达式:

/^.*?text\s*\|/gm

逻辑拆解:

  • 锚定行首后非贪婪匹配所有前置内容,直到命中text关键字加后续的|分隔符,\s*兼容text和|之间存在空白的场景,匹配范围刚好覆盖到要求的截止位置。

匹配效果验证

针对给出的测试样例:

  • 基础模式可准确捕获目标段,不会误纳入后续行的内容,非URL段不管带不带空格都能正常匹配
  • 贪婪模式可完整覆盖从行首到第一处text |的全部内容,符合扩展需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:42:30