Perl文本处理模块用法指导

本文和大家重点讨论一下Perl文本处理模块的用法,Perl是用于文本分析的一种出色语言。内置的操作符使得文本搜索、替换和模式匹配轻而易举。

创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目做网站、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元会同做网站,已为上家服务,为会同各地企业和个人服务,联系电话:028-86922220

Perl文本处理模块

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

Perl是用于文本分析的一种出色语言。内置的操作符使得文本搜索、替换和模式匹配轻而易举。
CPAN(综合Perl档案网络(ComprehensivePerlArchiveNetwork))汇集了大量模块,有些模块把编程从文本和数据分析的困境中解救出来。

Perl文本处理模块-将Perl模块用于解析、记载和分析

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

缺点:
由于它使用可扩展文法规则并且实时地进行记载和解析,所以比较慢。如果没有正确使用该模块,性能就会降低。
优点:
擅长记载和解析。记载总是比任何其它工具更好地执行任务。

Perl文本处理模块-改编现有的记载文法

JohnHagerman的SwedishChef记载文法是出色的简单文本过滤器示例。它还非常有趣,会给许多计算机科学与工程专业的学生在毕业前夕带来欢乐。我将展示一个使用Parse::RecDescent模块将chef.l文法移植到Perl中的示例(Parse::RecDescent模块并不是实现这一任务的理想选择―Parse::Lex模块会更好些)。这一节只准备介绍构建Parse::RecDescent语法的规则,将包括操作、记忆状态、拒绝产品和对文本进行记载。请记住,自己试一试chef.pl脚本―您很可能会对此着迷。

chef.pl脚本几乎是chef.l记载文法完全一样的副本。$niw变量在启动时设置为0,因为许多规则测试它来判断它们应该被接受还是被拒绝。$niw表示“不在文字中(notinword)”,而当解析器在文字内时,它设置为1。如果Parse::RecDescent的伪指令中指定的变量非零,则该伪指令会拒绝该规则。因此,请牢记$niw=0意味着解析器不在文字内。
skip变量设置为''(空字符串),所以所有输入(包括空格)都转至标志伪指令。此外,chef规则以\z结束,\z表示字符串的结束。通常使用\Z,但那还可以匹配Perl中的换行,它们也都可以在输入中。

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

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

网站题目:Perl文本处理模块用法指导
URL链接:http://www.mswzjz.com/qtweb/news10/206110.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联