在Perl中解析一个乳胶文件

时间:2011-05-11 04:10:26

标签: perl latex

对这个非常基本的问题道歉!

我只想读一个乳胶文件(基本上是文本)并输出所有(说)定理,这些定理总是采用格式

\begin{theorem}
some lines of latex
\end{theorem}

我总是认为Perl是正确的语言!

当然,我只知道C ++和Java中非常基本的编程,而且几乎没有Perl。

尽管如此,我现在可以阅读文本文件,并逐行处理。

这似乎是最基本的方法:

($string =~ /pattern/) 

我开始感到困惑,然后阅读控制代码,如?,* +,$等

任何简单的引用或链接都可以让我入手?

(我把它放在这里,而不是Tex网站,因为它通常用于阅读文本文件,而不仅仅是LaTeX!)

2 个答案:

答案 0 :(得分:8)

如果您使用的是Unix-y机器(包括Mac),对于这么小的任务,您应该首先到达sed

$ sed -ne '/^\\begin{theorem}$/,/^\\end{theorem}$/p' doc.tex

如果您使用的是Windows,则不会将sed与操作系统捆绑在一起,并且perl更容易安装AIUI,所以这里是等效的:

> perl -ne 'print if /^\\begin\{theorem\}$/.../^\\end\{theorem\}$/;' doc.tex

您可能会注意到这两个命令之间存在明显的相似之处。那不是偶然的; Perl从许多旧的Unix文本复制实用程序中获取了想法,包括sed

答案 1 :(得分:0)

我认为模式     \开始{定理}(。*)\ {端定理}

然后在进行匹配后,你的定理将在变量$ 1中。

注意:我在这里假设最基本的结构。如果定理可以是多线的,那么我可以给你更好的解决方案。