string - Julia - 在文件中打印或写入字符串中的反斜杠

标签 string julia backslash

我需要在 Julia 中写入一个 LaTeX 命令,这是一个最小的例子:

open("./file.tex", "w") do f
   foo::Int = 5
   # write(f, "$foo\hline \n")        - This is what I would like to do
   # write(f, "$foo \\ \n")           - This is another thing I want to do, and it works
   # write(f, "$foo \\\hline \n")     - My final goal is this -> 
                                        leads to ERROR: syntax: invalid escape sequence
end

你已经明白我想要什么了,我想要一个带有反斜杠的字符串,但不是转义字符。 这不起作用:

julia> "\"  # Error

这都不是

julia> "\\\hline"

最佳答案

你可以写"\\hline"来得到你想要的。一般来说,规则是两个 \ 在结果字符串中被转换为一个 \,所以 "\\\h" 是一个错误,因为它被解析为 "\\" 然后 "\h"\h 是一个无效序列,但是例如"\\\r" 会被接受,因为 \r 是一个有效的空格序列(所以实际上你很幸运 \h 是无效的,因为它可以让您发现错误)。

这也意味着如果你想在输出中有 something\\+newline 你必须写 ""something\\\\\n ""(五个 \ - 四个用于获取 "\\",第五个用于获取带有 \n 的新行)。

您可以使用原始字符串文字来避免像这样转义 \:raw"\hline"(但是您失去了插值的能力)。 .参见 https://docs.julialang.org/en/latest/manual/strings/#man-raw-string-literals-1对于字符串末尾带有 \ 的极端情况。

您可能也对此包感兴趣 https://github.com/stevengj/LaTeXStrings.jl如果您经常使用 LaTeX。

关于string - Julia - 在文件中打印或写入字符串中的反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794182/

相关文章:

python - 如何区分字符串和其他Iterables?

c - C 中的字符串填充

Julia 位串函数和字节顺序

struct - 为什么 NamedTuples 和(不可变的)结构是分开的?

linq - 自动生成的 sql 代码 : single backslash as an escape character is failing

javascript - 是否可以对字符串进行子串化,但隐藏整个字符串?

c - 在结构中填充字符指针

julia - 为什么我的 Julia 程序使用这么多内存?

php - 如何将php中的反斜杠替换为xml?

java - 忽略 ASCII 艺术中的转义序列