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

Perl-正则<1>

发布时间:2020-12-15 23:49:50 所属栏目:大数据 来源:网络整理
导读:正则表达式:a # 匹配字母a$ #匹配字母$n #匹配换行符[a-z] #匹配任何一个小写字母. #匹配除n以外的任意字符1 #反向引用所匹配到的第一组捕获内容* 匹配0个、1个或多个相同字符?匹配0个或1个该前一个字符abc* 表示匹配abc abd abccc ab+:一个或多个相同
正则表达式:

a  # 匹配字母a

$  #匹配字母$

n #匹配换行符

[a-z] #匹配任何一个小写字母

. #匹配除n以外的任意字符

1 #反向引用所匹配到的第一组捕获内容

* 匹配0个、1个或多个相同字符
?匹配0个或1个该前一个字符

abc* 表示匹配abc abd abccc ab

+:一个或多个相同的前导字符(模式)

grep:正则表达式只对简单变量匹配,如果是数组@a=~/abc/,则’2’=~/abc/。用grep(/abc/,@a);对数组中的每个元素匹配。
d 匹配一个数字的字符,和 [0-9] 语法一样 

d+ 匹配多个数字字符串,和 [0-9]+ 语法一样 

D 非数字,其他同 d 

D+ 非数字,其他同 d+ 

w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样 

w+ 和 [a-zA-Z0-9]+ 语法一样 

W 非英文字母或数字的字符串,和 [^a-zA-Z0-9] 语法一样 

W+ 和 [^a-zA-Z0-9]+ 语法一样 

s 空格,和 [ntrf] 语法一样 

s+ 和 [ntrf]+ 一样 

S 非空格,和 [^ntrf] 语法一样 

S+ 和 [^ntrf]+ 语法一样 

b 匹配以英文字母,数字为边界的字符串 

B 匹配不以英文字母,数值为边界的字符串 

------------------------------------------------------------------------------
[oracle@june2 2]$ cat a5.pl 
my $a = "12-05.92";
if ( $a =~ /d{2}([W])d{2}([W])d{2}/ ){print "222221111n"};
if ( $a =~ /d{2}([W])d{2}1d{2}/ ){print "2222222n"};
[oracle@june2 2]$ perl a5.pl 
222221111
[oracle@june2 2]


[oracle@june2 2]$ cat a5.pl 
my $a = "12-05-92";
if ( $a =~ /d{2}([W])d{2}([W])d{2}/ ){print "222221111n"};
if ( $a =~ /d{2}([W])d{2}1d{2}/ ){print "2222222n"};
[oracle@june2 2]$ perl a5.pl 
222221111
2222222

1 
当模式中匹配相同的部分出现多次时,可用括号括起来,用n来多次引用,以简化表达式。

但是匹配的内容必须一致才行,捕获的是定值 

(编辑:李大同)

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

    推荐文章
      热点阅读