Perl正则表达式的八大原则

开发 架构
相信大家对于Perl语言中的Perl正则表达式(RegularExpression)不会感到陌生,Perl语言由于有这个功能,所以对字符串的处理能力非常强。

本文和大家重点讨论一下Perl正则表达式的概念,Perl正则表达式是初学Perl的难点所在,不过只要一旦掌握其语法,你就可以拥有几乎无限的模式匹配能力,而且Perl编程的大部分工作都是掌握常规表达式。

Perl正则表达式的八大原则

  如果在Unix中曾经使用过sed、awk、grep这些命令的话,相信对于Perl语言中的Perl正则表达式(RegularExpression)不会感到陌生。Perl语言由于有这个功能,所以对字符串的处理能力非常强。在Perl语言的程序中,经常可以看到Perl正则表达式的运用,在CGI程序设计中也不例外。

  Perl正则表达式是初学Perl的难点所在,不过只要一旦掌握其语法,你就可以拥有几乎无限的模式匹配能力,而且Perl编程的大部分工作都是掌握常规表达式。下面给大家介绍几条Perl正则表达式使用过程中的8大原则。

  Perl正则表达式在对付数据的战斗中可形成庞大的联盟——这常常是一场战争。我们要记住下面八条原则:

◆原则1:Perl正则表达式有三种不同形式(匹配(m//),替换(s///eg)和转换(tr///))。

◆原则2:Perl正则表达式仅对标量进行匹配($scalar=~m/a/;可以工作;@array=~m/a/将把@array作为标量对待,因此可能不会成功)。

◆原则3:Perl正则表达式匹配一个给定模式的最早的可能匹配。缺省时,仅匹配或替换Perl正则表达式一次($a='stringstring2';$a=~s/string//;导致$a='string2')。

◆原则4:Perl正则表达式能够处理双引号所能处理的任意和全部字符($a=~m/$varb/在匹配前把varb扩展为变量;如果$varb='a'$a='as',$a=~s/$varb//;等价于$a=~s/a//;,执行结果使$a="s")。

◆原则5:Perl正则表达式在求值过程中产生两种情况:结果状态和反向引用:$a=~m/pattern/表示$a中是否有子串pattern出现,$a=~s/(word1)(word2)/$2$1/则“调换”这两个单词。

◆原则6:Perl正则表达式的核心能力在于通配符和多重匹配运算符以及它们如何操作。$a=~m/\w+/匹配一个或多个单词字符;$a=~m/\d/"匹配零个或多个数字。

◆原则7:如果欲匹配不止一个字符集合,Perl使用"|"来增加灵活性。如果输入m/(cat|dog)/则相当于“匹配字符串cat或者dog。

◆原则8:Perl用(?..)语法给Perl正则表达式提供扩展功能。(这一点请同学们课后看相关资料)

想要学习所有这些原则?我建议大家先从简单的开始,并且不断的尝试和实验。实际上如果学会了$a=~m/ERROR/是在$a中查找子串ERROR,那么你就已经比在C这样的低层语言中得到了更大的处理能力。
 

【编辑推荐】

  1. Perl正则表达式的三种形式
  2. 解析Perl面向对象编程的两种实现方式
  3. Perl二维数组用法全程剖析
  4. 学习笔记 全面认识Perl正则表达式
  5. Perl正则表达式的三种形式和八大原则

 

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-07-13 17:10:31

Perl正则表达式

2010-03-31 17:26:52

SaaS

2010-07-14 09:55:24

Perl正则表达式

2010-07-19 10:40:16

Perl正则表达式

2010-07-13 17:03:53

Perl正则表达式

2010-07-14 09:01:18

Perl正则表达式

2010-07-14 09:37:46

Perl正则表达式

2010-07-14 09:47:04

Perl正则表达式

2010-07-22 09:12:05

Perl正则表达式

2010-07-14 10:06:55

Perl正则表达式

2010-07-13 16:56:30

Perl正则表达式

2009-09-16 12:41:42

Perl正则表达式

2010-07-14 09:24:22

Perl正则表达式

2010-07-19 16:11:20

Perl正则表达式

2010-07-19 16:17:17

Perl正则表达式

2018-09-27 15:25:08

正则表达式前端

2010-07-21 10:43:25

Perl正则表达式匹配

2020-09-04 09:16:04

Python正则表达式虚拟机

2010-07-20 16:25:50

Perl正则表达式

2009-12-18 13:57:35

Ruby正则表达式
点赞
收藏

51CTO技术栈公众号