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

求匹配HackLang中所有|>管道操作符表达式的正则表达式

匹配HackLang管道表达式组的正则方案

可以使用支持递归平衡括号的正则实现需求,以下是可行的表达式:

\b(?:[^()\s]+|\((?:[^()]+|\((?R)\))*\))+(?:\s*\|\>\s*(?:[^()\s]+|\((?:[^()]+|\((?R)\))*\))+)+

正则说明:

  • \b:确保匹配从合法的表达式起始位置开始,避免截断部分标识符
  • 核心表达式单元 (?:[^()\s]+|\((?:[^()]+|\((?R)\))*\))+:
    • [^()\s]+:匹配非括号、非空白的字符(如变量名、函数名、$$这类特殊标记)
    • \((?:[^()]+|\((?R)\))*\):递归匹配平衡的括号结构,支持嵌套函数调用(如foo(bar(baz())))
  • (?:\s*\|\>\s*(?:...)\+)+:重复匹配|>管道操作符及其后续的表达式,\s*兼容操作符前后的任意空白

使用效果:

针对示例输入:

"x() |> y($$) |> z($$) any random string a() |> b($$) |> c($$)"

会匹配到两个结果:

  1. x() |> y($$) |> z($$)
  2. a() |> b($$) |> c($$)

注意事项:

  • 该正则依赖PCRE递归特性,需要在支持PCRE的环境中使用(如PHP、Python的regex库,而非标准re库)
  • 若表达式包含除括号外的其他嵌套语法(如数组[]、对象{}),可扩展正则的字符集和平衡规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:55:13