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来多次引用,以简化表达式。 但是匹配的内容必须一致才行,捕获的是定值 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |