加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl语言学习笔记 7 正则表达式

发布时间:2020-12-15 23:54:39 所属栏目:大数据 来源:网络整理
导读:1、正则表达式匹配的是一个模式,只分为匹配和不匹配两种。 2、如果模式匹配对象是“$_”,只用把模式写在/ /之间即可,如:/abc/ 3、元字符:. 点号是任何单字符的通配符,换行(n)除外 4、量词 *:表示0到无穷次 +:表示1到无穷次 5、圆括号 用来分组,

1、正则表达式匹配的是一个模式,只分为匹配和不匹配两种。

2、如果模式匹配对象是“$_”,只用把模式写在/ /之间即可,如:/abc/

3、元字符:.

点号是任何单字符的通配符,换行(n)除外
4、量词

*:表示0到无穷次

+:表示1到无穷次

5、圆括号

用来分组,支持反向引用1、2,如:/(.)1/

perl 5.10支持新的反向引用:g{N}#N可用负数表示相对位置

6、择一匹配:|

如:(a|b)

7、字符集[],如:[A-Za-z]

简写:d:数字;

w:单词(字母、数字、下划线);

s:换行、分页、制表、回车、空格(nftr )

h:匹配横向空白,[t ]

v:匹配纵向的空格,等效于 [fnr]

R:匹配任何类型的断行

8、反义简写

D、W、S:匹配相应小写版本以外的字符

[dD]:表示任何数字和非数字,可以匹配任何字符

9、模式匹配操作符的写法

m//、m{}、m()、m<>、m%%等

使用不同的定界符可以提高代码可读性:/^http::/// = m%^http://%

10、可选修饰符(可以组合使用,如:m{}isx)

/i:大小写无关的匹配

/s:匹配任意字符,使 . 匹配换行符

/x:可以在模式中加入任意空白和注释

11、锚位

^:开始锚位,标识一个字符串的开头

$:结束锚位,标识一个字符串的结尾

b:单词边界锚位,用于匹配任何单词的首尾,可以单独使用

12、绑定操作符

默认匹配的是 $_ ,绑定操作符可以指定要匹配的字符串,如:$word =~ /abc/

13、模式串中的内插

如:$what = "larry"; ? ?if(/{$what}*/){}

14、捕获变量

正则表达式处理的结果可以被捕获,每个括号都被捕获,依次为:$1、$2、$3

捕获变量的有效期到下次成功捕获新的变量为止。

不捕获模式:(?:abc)

命名捕捉:(?<LABEL>PATTERN),如:m/(?<name1>w+)(and|or)(?<name2>w+)/;在5.10版本之后可以使用,反向引用可以改为:g{LABEL}

自动匹配变量:$`、$&、$':依次为匹配字符串之前的内容、匹配字符串、匹配字符串之后的内容

15、通用量词

{}:括号内指定重复的次数,如:(a{3,15})、(a{5,})

16、优先级

圆括号:()、量词:*/+/?/{m,n}、锚位和序列:^/$、择一:|、元素:a/[abc]/d/l

17、模式测试程序

while(<>){

chomp;

if(/YOUR_PATTERN/){

print "Matched: |$`<$&>$'|n";

}else{

print "no matchedn";

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读