zoukankan      html  css  js  c++  java
  • perl 正则

    s 代表空格
    
    + 代表重复一次或一次以上
    
    s+ 代表一个或者一个以上空格
    
    [oracle@jhoa ~]$ cat a3.pl 
    $command ="ls -ltr";
    my ($binary,$var)=split /s+/,"$command";
    print "$bibary is $binary
    ";
    print "$var is $var
    ";
    
    
    [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 "ok
    ";
    }
    
    [oracle@jhoa ~]$ perl a4.pl 
    ok
    
    
    [oracle@jhoa ~]$ cat a4.pl 
    $command = "&";
    if ($command =~ m#[|&><;]#) {
    print "ok
    ";
    }
    
    [oracle@jhoa ~]$ perl a4.pl 
    ok
    
    [oracle@jhoa ~]$ cat a4.pl 
    $command = "#";
    if ($command =~ m#[|&><;]#) {
    print "ok
    ";
    }
    
    [oracle@jhoa ~]$ perl a4.pl 
    
    ###########################################################
     [oracle@jhoa ~]$ cat a4.pl 
    $command = "> | m";
    if ($command =~ m#[|&><;]#) {
    my @array=split /|/,"$command";
    print "@array is @array:
    ";
    }
    
    
    [oracle@jhoa ~]$ perl a4.pl 
    @array is >   m:
    
    按| 分割,赋值给数组@array
    
    #############################################################
    $command =~ /|s*(less|grep|wc)/
    
    匹配| 0个或多个空格 在跟less grep 或wc 
    
    ##############################################################
    
    表示单词边界:
    
    [oracle@jhoa ~]$ cat a5.pl 
    $command = "lsn ";
     if ($command =~/ls/ ){
    print "ok
    "}
    ;
    
    [oracle@jhoa ~]$ perl a5.pl 
    [oracle@jhoa ~]$ 
    
    只会匹配到ls 不会匹配lsn
    
    #############################################################
    grep m/^$binary/,@allow_command or grep m/^$binary/,@allow_command2 
    
    $binary 匹配数组元素
    
    
    #######################################################################
    字符正则匹配:
    $var = "abccc";
    if ($var =~ /ab/) {
    print ("ok
    ");
    }
    
    
    数组正则匹配:
    
    [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_command2
    ";
    
    if (grep m/ls/,@allow_command2 ) {
    print "11111111111111111
    ";
    }else {
    print "2222222222222222
    ";}
    
    [oracle@jhoa ~]$ perl a7.pl 
    cat ls
    11111111111111111
    
    此时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",
        "/bin/ls",
    );
    my @allow_command2=map {basename("$_") } @allow_command;
    print "@allow_command2
    ";
    
    if (grep m/lsa/,@allow_command2 ) {
    print "11111111111111111
    ";
    }else {
    print "2222222222222222
    ";}
    [oracle@jhoa ~]$ perl a7.pl 
    cat ls
    2222222222222222
    
    lsa 不匹配数组元素
    
    
    



  • 相关阅读:
    超酷的元素周期表
    TestLink在线Excel用例转换xml
    我也学习JAVA多线程-join
    request.getSession(true/false)的区别
    nginx location配置详细解释
    RestTemplate--解决中文乱码
    扇贝-每日一句
    Hexo博客系列(三)-将Hexo v3.x个人博客发布到GitLab Pages
    C程序的内存分区(节选自黑马训练营day1)
    CodeBlocks更换界面主题界面、汉化及去掉注释及字符串的下划线(汉化包的链接来自本站的BeatificDevin大神)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352028.html
Copyright © 2011-2022 走看看