问题 Julia中的原始文字字符串


在Python中,人们可以写 r"a\nb" 为了防止 \n 从被解释为换行符的转义序列。

朱莉娅有类似的东西吗?那么字符串插值怎么样呢 "$variable",有没有办法防止它?

我知道一个人可以简单地写 "a\\nb" 和 "\$variable" 在朱莉娅,但我想写很多LaTeX字符串,而不必考虑正确逃避每个反斜杠 \ 和美元 $ 人物...

(在朱莉娅, r"..." 创建一个正则表达式。)


7408
2018-02-19 13:45


起源



答案:


朱莉娅0.6 我们有 raw"\a$variable"


4
2017-11-13 14:37





好吧,我刚刚发现,因为人们可以轻松创建 非标准字符串文字 在朱莉娅,传递一个将做我要求的:

macro R_str(s)
    s
end

>>> R"$a\n$b"
"\$a\\n\$b"
>>> print(R"$a\n$b")
$a\n$b

我也发现了 PyPlot.jl 定义«LaTeXString 可以通过构造的类型 L"...." 没有逃避反斜杠或美元符号»,具有IJulia中渲染方程式的额外好处。

最后一个问题仍然存在:在Julia base中有一个原始的字符串文字是不值得的吗?


11
2018-02-19 14:41



我也发现了需要 R_str 宏在某些情况下,手动定义它是一件麻烦事。不确定为什么它不存在,但在github上打开PR或问题,以便我们可以看到是否存在反对意见。 - ivarne
@ivarne,我想确实做公关。我将尝试找一些时间来处理它(我想使用字符串标志来指示原始字符串宏有条件地启用字符转义或插值的解释)。 - Cristóvão D. Sousa
这不是真正的“原始文字”。尝试这个: R"C:\"。它试图逃脱 "。你必须添加空间: R"C:\ "。你的解决方案非常接近。 PS。 Windows用户的原始字符串(或转义字符的函数)可能很有趣。 - Darek Nędza
该 L 提示正是我需要的Latex和PyPlot,谢谢。 - akxlr
@DarekNędza:这也是它在Python中的工作原理。 r"C:\" 不是有效的Python原始字符串。如果是的话,就没有办法在原始的双引号字符串中写双引号。 - Magnus Lie Hetland


答案:


朱莉娅0.6 我们有 raw"\a$variable"


4
2017-11-13 14:37





好吧,我刚刚发现,因为人们可以轻松创建 非标准字符串文字 在朱莉娅,传递一个将做我要求的:

macro R_str(s)
    s
end

>>> R"$a\n$b"
"\$a\\n\$b"
>>> print(R"$a\n$b")
$a\n$b

我也发现了 PyPlot.jl 定义«LaTeXString 可以通过构造的类型 L"...." 没有逃避反斜杠或美元符号»,具有IJulia中渲染方程式的额外好处。

最后一个问题仍然存在:在Julia base中有一个原始的字符串文字是不值得的吗?


11
2018-02-19 14:41



我也发现了需要 R_str 宏在某些情况下,手动定义它是一件麻烦事。不确定为什么它不存在,但在github上打开PR或问题,以便我们可以看到是否存在反对意见。 - ivarne
@ivarne,我想确实做公关。我将尝试找一些时间来处理它(我想使用字符串标志来指示原始字符串宏有条件地启用字符转义或插值的解释)。 - Cristóvão D. Sousa
这不是真正的“原始文字”。尝试这个: R"C:\"。它试图逃脱 "。你必须添加空间: R"C:\ "。你的解决方案非常接近。 PS。 Windows用户的原始字符串(或转义字符的函数)可能很有趣。 - Darek Nędza
该 L 提示正是我需要的Latex和PyPlot,谢谢。 - akxlr
@DarekNędza:这也是它在Python中的工作原理。 r"C:\" 不是有效的Python原始字符串。如果是的话,就没有办法在原始的双引号字符串中写双引号。 - Magnus Lie Hetland