2012-01-18 35 views
0

我刚开始编写一个C程序,将一些LaTeX转换为HTML代码。我认为最好的方法是使用正则表达式,但是我不能使用PCRE这个简单的主意:用\term{abc}代替[pre]abc[/pre]\term是我自己的Latex命令)。现在这里的渔获:LaTeX的正则表达式需要使用}(大括号)

  1. 如何处理逃过大括号(\})在\term
  2. 如何处理{}这样的对?
  3. 如何使正则表达式如此贪婪以至于它消耗了许多\term命令中的第一个,但不是所有这些命令?

好吧,很多问题想弄明白。希望有人能帮忙吗?

PS:我很抱歉,如果在任何情况下,我都忽略了一个答案,一个类似的问题...

+3

这些确实是三个不同的问题。如果你打破了这一点,你可能会得到更好的回应。 – 2012-01-18 20:31:53

回答

2

见perlfaq6(1)“我可以使用Perl的正则表达式来平衡匹配文字? ”。也就是说,由于乳胶的复杂性似乎与(x)html相似(如果不差),您可能需要注意RegEx match open tags except XHTML self-contained tags的字眼。

+0

我知道答案会得到提及。我可以闻到Cthulu。 – 2012-01-18 21:14:22

+0

感叹,我有点希望避免写一个“真正”的LaTeX解析器,并能够使用PCRe来代替。似乎我的直觉是正确的 – smiter 2012-01-19 09:22:37

0

我并不确切地知道您需要什么,但您可能会考虑htlatex(TeX4HT的一部分),pandoc或其他几个选项中的任何一个。 TeX很难解析。