需要使用转义}(大括号)的LaTeX的正则表达式



我刚刚开始编写一个C程序,将一些LaTeX转换为HTML代码。在我看来,最好的方法是使用正则表达式,但我无法将这个简单的想法用于PCRE:用[pre]abc[/pre]替换term{abc}term是我自己的Latex命令)。现在的问题是:

  1. 如何在term中处理转义大括号(}
  2. 如何处理像{}这样的配对
  3. 如何使正则表达式如此贪婪,以至于它消耗了许多term命令中的第一个,而不是全部命令

好吧,还有很多问题需要解决。希望有人能帮忙?

附言:如果在任何情况下,我忽略了类似问题的答案,我很抱歉。。。

请参阅perlfaq6(1)了解"我可以使用Perl正则表达式来匹配平衡文本吗?"。也就是说,由于latex的复杂性似乎与(x)html相似(如果不是更糟的话),您可能需要注意RegEx的单词匹配开放标签,XHTML自包含标签除外。

我不知道你到底需要什么,但你可能会考虑htlatex(TeX4HT的一部分)、pandoc或其他几个选项中的任何一个。众所周知,TeX很难解析。

最新更新