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

如何编写正则匹配双大括号内点后带管道分隔符的字符串

正则匹配解决方案

匹配项1(完整匹配大括号块)

正则:/{{\s*\.\s*(?:\|\s*[\w]+\s*)*}}/g
说明:对大括号、点、管道前后的空格完全不敏感,可匹配所有符合规则的{{ ... }}完整块,覆盖所有测试场景。如果管道命名支持下划线以外的特殊字符,可将\w替换为自定义字符集(比如支持横杠则改为[a-zA-Z0-9_-])。

匹配项2(管道相关内容匹配)

方案1:一次性获取所有管道拼接字符串

修改匹配项1的正则增加捕获组即可:
/{{\s*\.\s*([^}]+?)}}/g
匹配成功后取第1个捕获组的内容,执行捕获组内容.replace(/^\s*\|\s*|\s*$/g, '')即可得到测试用例要求的管道拼接结果,自动去掉前后多余的管道符和空格。

方案2:单独获取每一个管道名

如果需要把firstPipe、secondPipe分别提取,优先推荐两步法,兼容性更强:

  1. 先用匹配项1的正则拿到所有符合要求的{{ ... }}块内容
  2. 对每个块的内部内容用正则/\w+(?=\s*(?:\||}}))/g匹配,即可得到所有独立的管道名列表

如果运行环境支持可变长度后行断言(如Chrome 62+、Node.js 9+、Python 3.10+等),也可以用一步正则直接匹配:
/(?<={{\s*\.\s*(?:\|\s*)?)[\w]+(?=\s*(?:\||}}))/g

测试验证结果

对应给出的所有测试用例,以上正则均可完全符合预期:

  • 无匹配场景:无匹配结果,符合要求
  • 无管道场景:仅匹配到完整{{ . }}块,无管道相关结果,符合要求
  • 单/双管道场景、任意空格场景:均可正确匹配完整块、以及对应的管道内容

内容的提问来源于stack exchange,提问作者U. Bulle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:30:02