我从用户输入的 GUI 文本框中读入一个字符串,并通过 pandoc 处理它.该字符串包含带有反斜杠字符的数学 latex 指令。我想将字符串作为原始字符串发送到 pandoc 进行处理。但是像“\theta”这样的东西变成了标签和“heta”。
如何将包含反斜杠字符的字符串文字转换为原始字符串...?
编辑:
感谢 develerx、飞羊和 unutbu。但是没有一个解决方案似乎对我有帮助。原因是还有其他反斜杠字符在 python 中没有任何影响,但在 latex 中确实有意义。
例如'\lambda'。建议的所有方法都会产生
\\lambda
在 latex 处理中没有经过——它应该保持为\lambda。
另一个编辑:
如果我能完成这项工作,我想我应该完成。 @Mark:这三种方法都给出了我不想要的答案。
a='\nu + \lambda + \theta';
b=a.replace(r"\\",r"\\\\");
c='%r' %a;
d=a.encode('string_escape');
print a
u + \lambda + heta
print b
u + \lambda + heta
print c
'\nu + \\lambda + \theta'
print d
\nu + \\lambda + \theta
最佳答案
Python 的原始字符串只是告诉 Python 解释器它应该将反斜杠解释为文字斜杠的一种方式。如果您读取用户输入的字符串,它们已经超过了它们可能是原始的点。此外,用户输入很可能按字面意思阅读,即“原始”。
这意味着翻译发生在其他地方。但如果你知道它会发生,为什么不转义反斜杠来解释它呢?
s = s.replace("\\", "\\\\")
(请注意,您不能将 r"\"
作为 “a raw string cannot end in a single backslash” ,但我也可以将 r"\\"
用于第二个参数.)
如果这不起作用,您的用户输入是出于某种神秘的原因来解释反斜杠,因此您需要一种方法来告诉它停止。
关于python - 如何转义通过用户输入收到的 latex 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262828/