• Perl-正则


    正则表达式:
    
    a  # 匹配字母a
    
    $  #匹配字母$
    
    
     #匹配换行符
    
    [a-z] #匹配任何一个小写字母
    
    . #匹配除
    以外的任意字符
    
    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 空格,和 [
    	
    f] 语法一样 
    
    s+ 和 [
    	
    f]+ 一样 
    
    S 非空格,和 [^
    	
    f] 语法一样 
    
    S+ 和 [^
    	
    f]+ 语法一样 
    
     匹配以英文字母,数字为边界的字符串 
    
    B 匹配不以英文字母,数值为边界的字符串 
    
    ------------------------------------------------------------------------------
    [oracle@june2 2]$ cat a5.pl 
    my $a = "12-05.92";
    if ( $a =~ /d{2}([W])d{2}([W])d{2}/ ){print "111111111
    "};
    if ( $a =~ /d{2}([W])d{2}1d{2}/ ){print "2222222
    "};
    [oracle@june2 2]$ perl a5.pl 
    111111111
    [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 "111111111
    "};
    if ( $a =~ /d{2}([W])d{2}1d{2}/ ){print "2222222
    "};
    [oracle@june2 2]$ perl a5.pl 
    111111111
    2222222
    
    1 
    当模式中匹配相同的部分出现多次时,可用括号括起来,用
    来多次引用,以简化表达式。
    
    但是匹配的内容必须一致才行,捕获的是定值 

  • 相关阅读:
    redis原理及实现
    RabbitMQ原理介绍
    我的mongoDb之旅(二)
    我的mongoDb之旅(一)
    PHP服务器Apache与Nginx的对比分析
    后端技术杂谈11:十分钟理解Kubernetes核心概念
    后端技术杂谈10:Docker 核心技术与实现原理
    后端技术杂谈9:先搞懂Docker核心概念吧
    后端技术杂谈8:OpenStack架构设计
    后端技术杂谈7:OpenStack的基石KVM
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351953.html
Copyright © 2020-2023  润新知