perl 正则
发布时间:2020-12-15 23:52:19 所属栏目:大数据 来源:网络整理
导读:s 代表空格+ 代表重复一次或一次以上s+ 代表一个或者一个以上空格[oracle@jhoa ~]$ cat a3.pl $command ="ls -ltr";my ($binary,$var)=split /s+/,"$command";print "$bibary is $binaryn";print "$var is $varn";[oracle@jhoa ~]$ perl a3.pl $bibar
s 代表空格 + 代表重复一次或一次以上 s+ 代表一个或者一个以上空格 [oracle@jhoa ~]$ cat a3.pl $command ="ls -ltr"; my ($binary,$var)=split /s+/,"$command"; print "$bibary is $binaryn"; print "$var is $varn"; [oracle@jhoa ~]$ perl a3.pl $bibary is ls $var is -ltr ##################################################### 正则表达式 m#[|&><;]# if ($command =~ m#[|&><;]#) { m/<regexp>;/ 可以简写成/<regexp>;/ 略去m [oracle@jhoa ~]$ cat a4.pl $command = ";"; if ($command =~ m#[|&><;]#) { print "okn"; } [oracle@jhoa ~]$ perl a4.pl ok [oracle@jhoa ~]$ cat a4.pl $command = "&"; if ($command =~ m#[|&><;]#) { print "okn"; } [oracle@jhoa ~]$ perl a4.pl ok [oracle@jhoa ~]$ cat a4.pl $command = "#"; if ($command =~ m#[|&><;]#) { print "okn"; } [oracle@jhoa ~]$ perl a4.pl ########################################################### [oracle@jhoa ~]$ cat a4.pl $command = "> | m"; if ($command =~ m#[|&><;]#) { my @array=split /|/,"$command"; print "@array is @array:n"; } [oracle@jhoa ~]$ perl a4.pl @array is > m: 按| 分割,赋值给数组@array ############################################################# $command =~ /|s*(less|grep|wc)/ 匹配| 0个或多个空格 在跟less grep 或wc ############################################################## b 表示单词边界: [oracle@jhoa ~]$ cat a5.pl $command = "lsn "; if ($command =~/lsb/ ){ print "okn"} ; [oracle@jhoa ~]$ perl a5.pl [oracle@jhoa ~]$ 只会匹配到ls 不会匹配lsn ############################################################# grep m/^$binaryb/,@allow_command or grep m/^$binaryb/,@allow_command2 $binary 匹配数组元素 ####################################################################### 字符正则匹配: $var = "abccc"; if ($var =~ /ab/) { print ("okn"); } 数组正则匹配: [oracle@jhoa ~]$ cat a7.pl use strict; use Switch; use Sys::Hostname; use File::Basename; my $host = hostname; my $prompt = "$host >"; my @allow_command=( "/bin/cat","/bin/ls",); my @allow_command2=map {basename("$_") } @allow_command; print "@allow_command2n"; if (grep m/ls/,@allow_command2 ) { print "22222222222222211n"; }else { print "2222222222222222n";} [oracle@jhoa ~]$ perl a7.pl cat ls 22222222222222211 此时ls 匹配数组元素 [oracle@jhoa ~]$ cat a7.pl use strict; use Switch; use Sys::Hostname; use File::Basename; my $host = hostname; my $prompt = "$host >"; my @allow_command=( "/bin/cat",); my @allow_command2=map {basename("$_") } @allow_command; print "@allow_command2n"; if (grep m/lsa/,@allow_command2 ) { print "22222222222222211n"; }else { print "2222222222222222n";} [oracle@jhoa ~]$ perl a7.pl cat ls 2222222222222222 lsa 不匹配数组元素 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |