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 不匹配数组元素
    
    
    



  • 相关阅读:
    Accept Xcode/iOS License to run git
    Public Key Retrieval is not allowed
    No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer
    HttpURLConnection调用Restful接口
    关于线程同步(7种同步方式)
    面试(初级)
    面试题(高级)
    RedisTemplate和StringRedisTemplate的区别 RedisTemplate几种序列化方式比较
    Redis 3.2.1集群 —— Redis-trib.rb工具详解(含原理)
    Redis 3.2.1集群 —— CLUSTER MEET ip port
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352028.html
Copyright © 2011-2022 走看看