python - Python:用“\\”替换“\”
问题描述
我想用“\\”替换“\”以进一步编辑和导出到 LaTeX。(这是一个矩阵计算器,应该将计算的所有步骤导出到 LaTeX)
import re
text='''
\begin{alignat*}{2}
\begin{sysmatrix}{rrr|r}
1 & 2 & 0 & 0 \\
-1 & 1 & 2 & 0 \\
1 & 0 & 1 & 5 \\
0 & -2 & 1 & 4
\end{sysmatrix}'''
我试过replace()
和re.sub()
。我找到的答案建议了这两个,但我认为它们在这种情况下不起作用。
print(re.sub('\\\\',' \\\\\\\\', text))
print(text.replace('\\',' \\\\'))
print(text.replace('\\',r' \\\\'))
输出
egin{alignat*}{2}
egin{sysmatrix}{rrr|r}
1 & 2 & 0 & 0 \\
-1 & 1 & 2 & 0 \\
1 & 0 & 1 & 5 \\
0 & -2 & 1 & 4
\\end{sysmatrix}
egin{alignat*}{2}
egin{sysmatrix}{rrr|r}
1 & 2 & 0 & 0 \\
-1 & 1 & 2 & 0 \\
1 & 0 & 1 & 5 \\
0 & -2 & 1 & 4
\\end{sysmatrix}
egin{alignat*}{2}
egin{sysmatrix}{rrr|r}
1 & 2 & 0 & 0 \\\\
-1 & 1 & 2 & 0 \\\\
1 & 0 & 1 & 5 \\\\
0 & -2 & 1 & 4
\\\\end{sysmatrix}
它应该是这样的:
\begin{alignat*}{2}
\begin{sysmatrix}{rrr|r}
1 & 2 & 0 & 0 \\
-1 & 1 & 2 & 0 \\
1 & 0 & 1 & 5 \\
0 & -2 & 1 & 4
\end{sysmatrix}'
或这个:
\\begin{alignat*}{2}
\\begin{sysmatrix}{rrr|r}
1 & 2 & 0 & 0 \\\\
-1 & 1 & 2 & 0 \\\\
1 & 0 & 1 & 5 \\\\
0 & -2 & 1 & 4
\\end{sysmatrix}'
还有其他想法如何用 python 编写 LaTeX 文档吗?
解决方案
好吧,您的替换确实有效(它正确地替换\
为\\
),但是在您的初始字符串定义中存在一个问题:当您定义 时text
,它实际上并不是以反斜杠和单词开头,begin
而是以\b
作为 ASCII 退格符的字符开头( cmp:反斜杠 b 在 Python 中做了什么?),然后是egin
.
如果您使用以下命令打印字符串的非解释表示,则可以看到这一点print(repr(text))
:
'\n\x08egin{alignat*}{2}\n\x08egin{sysmatrix}{rrr|r}\n 1 & 2 & 0 & 0 \\\n-1 & 1 & 2 & 0 \\\n 1 & 0 & 1 & 5 \\\n 0 & -2 & 1 & 4\n\\end{sysmatrix}'
如果您首先正确定义了字符串
text='''
\\begin{alignat*}{2}
\\begin{sysmatrix}{rrr|r}
1 & 2 & 0 & 0 \\\\
-1 & 1 & 2 & 0 \\\\
1 & 0 & 1 & 5 \\\\
0 & -2 & 1 & 4
\\end{sysmatrix}'''
一切都应该没问题。一个简单的print(text)
产量
\begin{alignat*}{2}
\begin{sysmatrix}{rrr|r}
1 & 2 & 0 & 0 \\
-1 & 1 & 2 & 0 \\
1 & 0 & 1 & 5 \\
0 & -2 & 1 & 4
\end{sysmatrix}
尽管这也使得对正则表达式替换的整个需求都过时了,但您的问题中可能缺少约束。
推荐阅读
- python - Python Pandas 的更好解决方案
- graph-databases - GRAQL 中的递归查询?
- python - 在条件下填充 df 的行
- arrays - 嵌套量词
- firebase - 如何折叠 FCM 发送的 Web 推送通知
- javascript - Quasar CLI:设置配置文件 quasar.conf.js
- javascript - 邮递员在向特快路线发送请求时挂起(继续加载)
- javascript - 是否可以定义内联“静态”lambda(箭头)函数?
- javascript - 在 javascript 中读取 Java 编码的字节数组
- linux - 导出:找不到命令