• perl 正则命名捕获


    #!/usr/bin/perl -w 
    =pod 
    命名捕获--给匹配上的内容加上标签 
    
    捕获到的内容都会保存在%+散列中,这个散列的key为对应的标签; 
    
    方便之处就是利于程序扩展和阅读,不用繁琐的一个一个去数括号来获取匹配变量 
    =cut 
    
    
    zjtest7-frontend:/root/perl# cat a2.pl 
    use strict; 
    my $str = "jack and rose"; 
    if ($str =~ /(?<first>S+) (and|or) (?<second>S+)/) { 
        my ($first, $second) = ($+{first}, $+{second}); 
        print "$first
    $second
    ";  # jack, rose 
    } 
    
    
    zjtest7-frontend:/root/perl# perl a2.pl 
    jack
    rose
    
    
    s  空格,和 [
    	
    f] 语法一样  
    s+ 和 [
    	
    f]+ 一样  
    S  非空格,和 [^
    	
    f] 语法一样  
    S+ 和 [^
    	
    f]+ 语法一样  
    
    /******************************************************
    
    zjtest7-frontend:/root/perl# cat a1.pl 
    my $str="begin 123.456 end";
    
    if ($str =~/(?<first>S+)s+(?<second>S+)s+(?<third>S+)/)
      {
      my ($first, $second,$third) = ($+{first}, $+{second},$+{third});
      print "$first
    $second
    $third
    ";  # jack, rose 
    } 
    
    zjtest7-frontend:/root/perl# perl a1.pl 
    begin
    123.456
    end
    
    
    zjtest7-frontend:/root/perl# cat a3.pl 
    my $str="begin 123.456 end";
    if ($str =~/s+(?<request_time>d+(?:.d+)?)s+/){
       my ($request_time) = ($+{request_time});
       print $request_time."
    ";};
    
    zjtest7-frontend:/root/perl# perl a3.pl 
    123.456
    

  • 相关阅读:
    python开发环境安装
    python文件I/O
    python字符串方法以及注释
    python列表
    php: Can't use function return value in write context
    Notice : brew install php70
    对web开发从业者的发展方向的思考
    关于微信跨号支付
    MySQL触发器写法
    MySQL慢查询日志
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199350.html
Copyright © 2020-2023  润新知