我有一个 HTML 到 LaTeX 解析器,它针对它应该做的事情(将 HTML 片段转换为 LaTeX 片段)进行了定制,但是在填充变量时存在一个小问题。问题是应该允许变量包含 LaTeX 保留字符(即# $ % ^ & _ { } ~ \
)。这些需要被转义,这样它们就不会杀死我们的 LaTeX 渲染器。
处理转换和一切的程序都是用 Python 编写的,所以我试图找到一个不错的解决方案。我的第一个想法是简单地做 a .replace()
,但 replace 仅当第一个不是 a 时才允许您匹配\
。我的第二次尝试是一个正则表达式,但我失败了。
我想出的正则表达式是([^\][#\$%\^&_\{\}~\\])
. \
我希望这将匹配任何保留字符,但前提是它前面没有 a 。不幸的是,这匹配了我输入文本中的任何单个字符。我也尝试过这个正则表达式的不同变体,但我无法让它工作。变化主要包括在正则表达式的第二部分中删除/添加斜杠。
任何人都可以帮助这个正则表达式吗?
编辑哎呀,我似乎也包括了斜线。显示当我发布此内容时我有多清醒 :) 在我的情况下它们不应该被转义,但是从答案中的正则表达式中删除它们相对容易。谢谢大家!