【问题标题】:Apache Velocity to replace backslash with two backslashesApache Velocity 用两个反斜杠替换反斜杠
【发布时间】:2014-11-22 15:36:40
【问题描述】:

我想在 PhpStorm 的 Apache Velocity 模板中用两个反斜杠替换一个反斜杠。可悲的是,似乎没有任何效果。这是我的一些尝试,但都没有成功。

${VAR.replace("\\", "\\\\")}
${VAR.replace("\\", "\\\\\\")}
${VAR.replace("\\", "\\\\\\\\")}
${VAR.replace("\\\\", "\\\\\\\\")}

我尝试了其他各种组合,包括 Velocity 提供的 ${esc.b}${esc.backslash}。绝对没有任何作用。

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

有什么想法吗?

【问题讨论】:

    标签: phpstorm velocity


    【解决方案1】:
    1. replaceAll 用作replace 适用于单个字符
    2. 使用#set 指令进行操作

    例子:

    #set($newVar = $namespace.replaceAll("\\", "\\\\"))
    $newVar
    

    namespace 变量的示例输入数据:qwe\asd\asd

    结果:

    qwe\\asd\\asd
    

    【讨论】:

    • 天哪,我的 Java 时代已经过去太久了,可以在相应的文档中找到自己。但我只是不认为 replace() 在 PHP 中像 strtr() 那样工作。 #set() 不是必需的,它是一个调用、打印和忘记调用。
    猜你喜欢
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2012-04-14
    • 2013-06-24
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多