【发布时间】:2015-05-17 13:12:38
【问题描述】:
编辑: 带有测试、示例和解决方案的正则表达式:https://www.regex101.com/r/rY7uI4/2
我正在尝试转换 TeX 内容(我们将假定它包含在变量 foo 中),以便将分隔符 $$ 转换为标准 TeX \[ 和 \]。我一直在玩 regex101,但直到现在还没有运气。
理想情况下,预期结果是给定以下输入:
text
$$ math $$
$$
math
$$
text $$math$$ text
输出如下
text
\[ math \]
\[
math
\]
text \[math\] text
也许正则表达式不是最好的工具,但我没有找到其他工具来完成这项任务。感谢您的帮助!
编辑: 添加一个更复杂(和现实)的测试用例:
$$\alpha \quad \beta \quad \varepsilon \quad \varphi \quad \mathbb{R} \quad \mathcal{C}([0,1]) \quad \mathfrak{R}([0,2\pi]) \quad \mathscr{C}(\mathbb{R})$$
$$\vec{x} \in \mathbb{R}^n, \quad \underline{x}\in \mathbb{R}^m, \quad \mathbf{x}\in \mathbb{R}^m \$$$string
应该导致:
\[\alpha \quad \beta \quad \varepsilon \quad \varphi \quad \mathbb{R} \quad \mathcal{C}([0,1]) \quad \mathfrak{R}([0,2\pi]) \quad \mathscr{C}(\mathbb{R})\]
\[\vec{x} \in \mathbb{R}^n, \quad \underline{x}\in \mathbb{R}^m, \quad \mathbf{x}\in \mathbb{R}^m \$\]string
注意第二个字符串末尾的转义 $。
【问题讨论】:
-
你不能用简单的
str.replace吗? -
如果你想用其他固定字符串替换固定字符串(不是patterns),标准问题字符串替换功能就是你想要的。不要把事情复杂化。
-
不幸的是 str.replace 将替换它找到的所有出现,而我只希望,对于每对
$$,第一个$$替换为\[,第二个替换为\]
标签: python regex replace tex file-conversion