如何在 Julia 中替换字符串文字的后/前斜线?

alv*_*vas 2 python backslash string-literals julia

在 Python 中,我可以像这样对斜杠进行字符串替换:

>>> s = 'ab\c'
>>> s.replace('\\', '\\\\')
'ab\\\\c'
>>> print s.replace('\\', '\\\\')
ab\\c
Run Code Online (Sandbox Code Playgroud)

在 Julia 中,当我可以这样做时:

julia> s = "ab\\c"
"ab\\c"

julia> replace(s, "\\\\", "\\\\\\\\")
"ab\\c"
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它会引发一些语法错误:

julia> replace(s, r"\", r"\\")
ERROR: syntax: "\" is not a unary operator
Run Code Online (Sandbox Code Playgroud)

Dan*_*etz 5

Julia REPL 以转义形式输出字符串。最好用printlnas in包裹东西println(replace(s, "\\", "\\\\"))。在这种情况下,您会得到:

julia> s = "ab\\c"
"ab\\c"

julia> println(s)
ab\c

julia> println(replace(s, "\\", "\\\\"))
ab\\c
Run Code Online (Sandbox Code Playgroud)

关于正则表达式的使用,第一个r"\"是部分正则表达式,解析器\在关闭后继续并在后面产生错误",第二个正则表达式是不必要的,因为它是要插入的字符串。

更新:在另一个答案中有关 Julia 与 Python 转义的更多详细信息。

希望这可以帮助!

  • 我开始编辑您的答案以添加一些有关转义行为差异的信息,但最终它完全重写了答案,因此我只写了一个不同的答案。 (2认同)