Phpstorm Apache Velocity将反斜杠替换为两个反斜杠

Phpstorm Apache Velocity将反斜杠替换为两个反斜杠,phpstorm,velocity,Phpstorm,Velocity,我想在PhpStorm中的apachevelocity模板中用两个反斜杠替换一个反斜杠。不幸的是,一切似乎都不起作用。以下是我的几次尝试,都没有成功 ${VAR.replace("\\", "\\\\")} ${VAR.replace("\\", "\\\\\\")} ${VAR.replace("\\", "\\\\\\\\")} ${VAR.replace("\\\\", "\\\\\\\\")} 我尝试了各种其他组合,包括Velocity提供的${esc.b}和${esc.backsla

我想在PhpStorm中的apachevelocity模板中用两个反斜杠替换一个反斜杠。不幸的是,一切似乎都不起作用。以下是我的几次尝试,都没有成功

${VAR.replace("\\", "\\\\")}
${VAR.replace("\\", "\\\\\\")}
${VAR.replace("\\", "\\\\\\\\")}
${VAR.replace("\\\\", "\\\\\\\\")}
我尝试了各种其他组合,包括Velocity提供的
${esc.b}
${esc.backslash}
。绝对没有办法

我想在PHP文件中将名称空间转换为带引号的字符串,这就是为什么我需要在输出中使用两个反斜杠而不是一个

有什么想法吗

  • 使用
    replaceAll
    ,因为
    replace
    仅适用于单个字符
  • 使用
    #set
    指令执行此操作
  • 例如:

    #set($newVar = $namespace.replaceAll("\\", "\\\\"))
    $newVar
    
    namespace
    变量的输入数据示例:
    qwe\asd\asd

    结果:

    qwe\\asd\\asd
    

    天哪,我的Java时代已经过去太久了,我可以在相应的文档中找到我自己。但我只是不认为
    replace()
    的工作方式与PHP中的
    strtr()
    类似。
    #set()
    不是必需的,它是一个调用、打印和忘记调用。