例如,我在 Python 中有大量内联 LaTeX 风格的数学字符串,eq = "$E = mc^2$"
或者eq = "$F = ma$ (N)"
我正在将其写入使用 MathJAX 的网页中。因此,我想将开始和结束$
符号转换为默认的 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
但我确信必须有一种更简单的单行方法来执行此操作,例如使用正则表达式(我知道我可以拥有上述解决方案和一个函数并将其用作单行)。有人有这么简单的方法吗?
...发出:
(去掉空白——牺牲可读性——如果你真的坚持它是“一行”)。
您可以使用re.sub方法来替换匹配的文本。
输出