首页 » 精通正则表达式(第3版) » 精通正则表达式(第3版)全文在线阅读

《精通正则表达式(第3版)》作为语言组件的正则表达式

关灯直达底部

Regular Expressions as a Language Component

Perl语言引人注目的特性之一就是,正则表达式在语言之中支持完美地内建。Perl没有提供独立的正则表达式应用函数,它的正则表达式的运算符,包含在构成语言的其他丰富的运算符和结构之中。

Perl具有强大的运用正则表达式的能力,人们可能认为,这需要数量繁多的运算符,但是,Perl事实上只提供了四个与正则表达式有关的运算符,以及少量的相关元素(见表7-1)。

表7-1:Perl中与正则表达式相关的对象概览

Perl的功能非常强大,但它提供的运算符数量非常少,这样有利也有弊。

Perl的长处

Perl's Greatest Strength

Perl最大的优势可能在于,Perl的运算符和函数提供了丰富的选项。根据应用场合的不同,它们的行为也不同,当然,这通常是执行者在那种场合自然想到的操作。O’Reilly 的Programming Perl说得很绝对:“总的来说,Perl的运算符可以做你希望的任何事情……”。正则匹配运算符 m/regex/提供了许多神奇的功能,会根据应用的场合、方式以及修饰符的不同而变化。

Perl的短处

Perl's Greatest Weakness

表达能力太强,也是 Perl 最大的毛病之一。哪怕只是进行极小的修改,也有数不清的特殊情况、条件和场合在你眼皮底下发生变化,但却不会通知你——不经意之间就切换到另一种应用场合(注2)。在Programming Perl这本书中,上面那句话的下半句是“只是缺乏一致性(consistency)”。当然,对计算机科学来说,固定、一致而值得依赖的接口是可取的。Perl 的强大功能在有经验的用户手里可能是强大的武器,但情况似乎是,你的 Perl 技能不断增长,是以不断地射伤自己的腿脚为代价的。