Xud*_*nax 4 python regex latex
我有一个 HTML 到 LaTeX 解析器,专门用于它应该做的事情(将 HTML 片段转换为 LaTeX 片段),但是填充变量有一个小问题。问题是变量应该允许包含 LaTeX 保留字符(即# $ % ^ & _ { } ~ \)。这些需要转义,这样它们就不会杀死我们的 LaTeX 渲染器。
处理转换的程序和所有内容都是用 Python 编写的,所以我试图找到一个很好的解决方案。我的第一个想法是简单地执行 a .replace(),但替换不允许您仅在第一个不是 a 时进行匹配\。我的第二次尝试是正则表达式,但我惨败了。
我想出的正则表达式是([^\][#\$%\^&_\{\}~\\]). \我希望这能匹配任何保留字符,但前提是它前面没有 a 。不幸的是,这与我输入文本中的单个字符匹配。我还尝试了这个正则表达式的不同变体,但我无法让它工作。这些变化主要包括在正则表达式的第二部分中删除/添加斜杠。
任何人都可以帮忙解决这个正则表达式吗?
编辑哎呀,我似乎也包括了斜线。显示了当我发布此内容时我是多么清醒:) 在我的情况下,它们不应该被转义,但从答案中的正则表达式中删除它们相对容易。谢谢大家!
是[^\]任何不是 a 的字符类\,这就是为什么它匹配所有内容。你想要一个负面的后向断言:
((?<!\)[#\$%\^&_\{\}~\\])
Run Code Online (Sandbox Code Playgroud)
(?<!...)只要...不在它前面,就会匹配它后面的任何内容。你可以在python 文档中查看这一点