python - 如何转义通过用户输入收到的 latex 代码?

标签 python string text

我从用户输入的 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/

相关文章:

python - keras的binary_crossentropy损失函数范围

python - 使用Python子进程处理带括号的文件路径

java - 以编程方式在 TextView 中显示字符串选项卡

python - Python 中的显式行连接

python - 如何在 Mac OS X 10.6 上使用 Python 3 和 Xcode 3 安装 PyObjC

python - 带有生成器的 Python 中的 DFS 算法

java - 从 "messy"Java 字符串中提取多种数据类型

c++ - TXT 或 CSV 到 C++ 映射

javascript - 如何使用 if else 显示文本

linux - 如何将某些符号(例如 "space")更改为 Bash/shell 中的其他符号