我有一个包含乳胶形式的数学表达式的文件。例如,我的文件中出现以下内容:
{\frac{d^{2}}{d^{2}{r}}}\zeta
我想编写一个python代码,它将扫描文件并输出一个新文件,其中上面表达式的所有实例都替换为
\zeta''
我尝试过以下代码:
import sys
import fileinput
for line in fileinput.input():
l = line.replace(r"{\frac{d^{2}}{d^{2}{r}}}\zeta","\zeta'")
sys.stdout = open('output.txt','a')
sys.stdout.write(l)
我知道在第一个要替换的字符串之前出现的r告诉代码忽略任何转义字符。但它似乎很难处理d ^ {2}部分。该代码未正确解释此“^”符号,因此不会进行替换。
我知道{\ frac {d ^ {2}} {d ^ {2} {r}}} \ zeta在技术上不是字符串,但我不确定如何对待它。任何帮助都会很棒。感谢。
答案 0 :(得分:1)
等同于您的代码(regex.py):
#!/usr/bin/python
import sys
import fileinput
x = open("output.txt", "a")
for line in fileinput.input():
l = line.replace(r"{\frac{d^{2}}{d^{2}{r}}}\zeta","\zeta''")
x.write(l)
似乎运行得很好:$ echo '{\frac{d^{2}}{d^{2}{r}}}\zeta' | ./regex.py
给出:
\zeta''