在Perl中解析一个乳胶文件

Qwi*_*irk 2 perl latex

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

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

\begin{theorem}
some lines of latex
\end{theorem}
Run Code Online (Sandbox Code Playgroud)

我总是觉得Perl是正确的语言!

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

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

看来最基本的方法是:

($string =~ /pattern/) 
Run Code Online (Sandbox Code Playgroud)

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

什么简单的参考或链接让我开始?

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

zwo*_*wol 8

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

$ sed -ne '/^\\begin{theorem}$/,/^\\end{theorem}$/p' doc.tex
Run Code Online (Sandbox Code Playgroud)

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

> perl -ne 'print if /^\\begin\{theorem\}$/.../^\\end\{theorem\}$/;' doc.tex
Run Code Online (Sandbox Code Playgroud)

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