我在Python中有大量内联的LaTeX风格的数学字符串,例如,我正在使用MathJAX编写到网页中的eq = "$E = mc^2$"
或eq = "$F = ma$ (N)"
。因此,我想将开始和结束的$
符号转换为默认的MathJAX风格,即开始用\(
,结束用\)
,这样我上面的两个例子就变成了eqmathjax = "\(E = mc^2\)
和eqmathjax = "\(F = ma\) (N)"
。请注意,一个字符串实际上可能包含多个等式,每个等式都有自己的一对$
符号。
我可以很容易地根据需要更换,例如:
twoeqns = "$E = mc^2$ and $F = ma$"
i = 0
repl = ["\(", "\)"]
while "$" in twoeqns:
twoeqns = twoeqns.replace("$", repl[i % 2], 1)
i += 1
但我确信一定有一种更简单的一行程序的方法来实现这一点,例如,使用正则表达式(我知道我可以使用上面的解决方案和一个函数,并将其用作一行程序)。有人有更简单的方法吗?
2条答案
按热度按时间vnjpjtjt1#
.发射:
(Take去掉空格--牺牲可读性--如果你真的坚持要“一行”的话)。
tyu7yeag2#
您可以使用 re.sub 方法来替换匹配的文本。
输出