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

Liquid语法错误:含右大括号的正则未正确终止,求转义方法

在Liquid中转义正则表达式里的右大括号(})的方法
  • 反斜杠直接转义:在正则里的}前添加单个反斜杠\,但注意在Ruby字符串中需要用双反斜杠\\(因为Ruby会先解析一次转义):

    Liquid::Template.parse("{{ str | regex: 'any regex with \\}'  }}")
    

    这样Liquid会把\}识别为普通的右大括号字符,而非模板标签的结束符。

  • 使用raw标签包裹:如果正则里有多个特殊Liquid语法字符,用{% raw %}和{% endraw %}包裹正则内容,强制Liquid不解析其中的语法:

    Liquid::Template.parse("{{ str | regex: '{% raw %}any regex with }{% endraw %}'  }}")
    

    包裹范围内的所有字符都会被当作普通文本处理,包括}。

  • 提前定义正则变量:在模板外部先定义好包含}的正则字符串,再插入到模板中:

    target_regex = "any regex with }"
    Liquid::Template.parse("{{ str | regex: '#{target_regex}'  }}")
    

    这种方式避免了在模板字符串中直接书写冲突字符,彻底规避语法解析问题。

内容的提问来源于stack exchange,提问作者Felix-Mihai Prava

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:42:01