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

如何在VCL中拆分过长的代码行?

在VCL中拆分长代码行的方法

针对VCL中过长的字符串(比如你的正则表达式),可以利用VCL自动拼接相邻字符串字面量的特性来拆分代码行,不需要额外连接符,具体有两种实现方式:

直接拆分正则字符串

将长正则拆分为多个带引号的字符串片段,直接换行排列即可,VCL会自动将它们拼接成完整的正则:

if (req.url.path ~ "^/stuff/otherstuff/"
    "(?:[a-z0-9_]+)"
    "(?:/(?:2018|2018_2019|2019|2019_2020|2020|2020_2021|2021|2021_2022|2022|2022_2023|2023|2023_2024|2024))?"
    "(?:/(?:cool|story|bro)(?:/.*)?)?/?$") {
    # do something
}

先赋值给变量再使用

如果希望代码更清晰或正则需要复用,可以先把拆分后的字符串赋值给一个临时变量,再在条件判断中引用:

set req.http.X-Temp-Regex = "^/stuff/otherstuff/"
    "(?:[a-z0-9_]+)"
    "(?:/(?:2018|2018_2019|2019|2019_2020|2020|2020_2021|2021|2021_2022|2022|2022_2023|2023|2023_2024|2024))?"
    "(?:/(?:cool|story|bro)(?:/.*)?)?/?$";

if (req.url.path ~ req.http.X-Temp-Regex) {
    # do something
}

注意事项

  • 每个拆分的字符串片段必须单独用引号包裹
  • 片段之间不需要添加任何连接符号(比如+),直接相邻排列(换行+缩进即可)
  • 这种方式仅适用于字符串字面量的拼接,不能和变量或其他表达式混合拼接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:27:21