当前位置:首页 > 百科

perl文本处理模块

Perl 的主要目标之来自一是解析文本。这里主要讨论用于文本解析的 CPAN 模块,并展示了如何在程序中方便地使用它们。通过使用一些360百科正确的工具,可以使分析代码注释、改编现有记载文法和许多其它任务变得容易。考虑到实际编程,给出了每个任务什儿探被的示例。

  • 中文名称 perl文本处理模块
  • 目标 解析文本
  • 公司 John Hagerman
  • 优缺点 记载和解析

将Per汽额边假般棉效娘干找京l模块用于解析、记载和分析

  开发的 Parse::RecDescent 是一个对文本进行记载和解析的功能强大的工具。Kim Ryan 开发的 Lingua::EN::Fathom 可以分析一个文件或一来自个文本块,并产生有关360百科其输入的各种统计信息。 Parse::RecDescent

  缺点:

  由于它使用可扩展文法规则并且实时地进行记载和解析,所以比较慢。如果没有正确使用该模块,性能就会降低。

  优点:

  。记载总是错责消春比任何其它工具更好地执行任务。

改编现有的记载文法

  John Hagerman 的 Swed个术间步态象求ish Chef 记载文法是出色的简单文本过滤器示例。它还非常有趣,会给许多计算机科学与工程专业的学生在毕业前夕带来欢乐。我犯渐导由永众转选含配育将展示一个使用 Pars头画针德关e::RecDescen光散副未苦四兰吧t 模块将 chef.l 文法移植到 Perl 中的示例(Parse::RecDesce诉压苦谈需十料张nt 模块并不是实现这一任注花歌陈烧展础器务的理想选择 ― P阳之子易arse::Lex 模块会更好些)。这一节只准备介绍构建 Parse::RecDescent 语法的规则,将包括操作、记忆状态、拒绝产品和对文本进行记载。请记住,自充正爱己试一试 chef.pl 脚肉较本 ― 您很可能会对此着迷。

  chef.pl 脚本几乎是 chef.l 太夜选含朝帮席职还布记载文法完全一样的副本。 $niw 变量在启动时设置为 0,因为许多规这感确画则测试它来判断它们应该被接受还是被拒绝。 $niw 表示"不在文字中(no供保说件要t in word)",而当解析器在文字内时,它设置为 1。如果 P军之号钱测握石银arse::RecDescent 的伪指令中指定的变艺长升成异值怀冲量非零,则该伪指令会拒绝该规则。因此,请牢记 $niw = 0 意味着解析器不在文字内。

烟是言金矿  skip 变量设置为 '' (空字符串),所以所有输入(包括空格)都转至标志伪指令。此外,chef 规则以 \z 结束,\z 表示字符串的结束。通常使用 \Z ,但那还可以匹配 Perl中的换行,它们也都可以在输入中。

  chef 规则:文法以 chef 规则开始。chef 规则匹配许多标志,直至表示字符串结束的 \z 。chef 规则的那两个元素称为"产品"。任何规则都必须由产品组成。操作可以是产品的一部分;它由花括号 {} 标出,并包含 Perl 代码。它不匹配任何事物 ― 操作仅用于执行。

  token 规则:token 规则可以匹配任何数或序列,这些数和序列是我为匹配 chef.1 文法而指定的(有些随意)。我将说明一些示例,以便使文法对应清晰。

标签:

  • 关注微信

相关文章