• 正则


    点号,匹配任何单字符的通配符(除了换行符\n)--------"abcde"=~/abc.d/

    * 匹配之前内容零次或者多次 

    *. 通配所有的字符串,捡破烂模式

    + 通配之前内容1次以上

    ? 通配前之前内容1次或者0

    分组:


    --------------

    /i 忽略大小写

    /s 匹配任意字符

    /x 加入空白

          /-?\d+\.?\d*/  #挤在一起,看不清楚

          /   -?   \d+   \.?   \d*  /x #加入空白忽略之后,忽略空格

     -------------------------

    $& 完整展示正则式匹配的内容

    $' 匹配之后的字符串

    $` 匹配之前的字符串

    如:if ("hello there,neighbor"=~/\s(w+),/) {print "$& ;}

    输出为:

    my $na='hello there, neighbor';

    if ($na=~/\s(\w+),/)

            {

            say $';

            say $`;

            say $&;}

    输出为:

    neighbor

    hello

     there,

    匹配次数:

    my $na='aaaaaaaaaaaa, neighbor';

    if ($na=~/(a{5,10})/)  #匹配出现a 5到10次的地方,如果a出现了20次,则只有前10个会匹配,如果省去右边的值,则匹配次数没有上限;如果省去左边的值,变为匹配单独的次数(如只有左边值{5},只有前5个会匹配

            {

            print $1 ;} # 这里的$1指,第一次匹配的地方,按左括弧计算

    优先级:

             元括弧                       (.....),(?:......),(?<LABEL>.....)

             量词                             a* a+ a? a{n,m}

             锚位                             abc   a^   a$

             择一                             a|b|c

             元素                             a[abc]  \d   \1

    优先级举例:

             如:/^abc|bar$/ 匹配开头有abc的,或者匹配结尾有bar的,结尾如果有abc,不匹配

                       /^(abc|bar)$/ 匹配不管开头或者结尾有abc或者bar的,结尾有abc,也匹配

    正则匹配测试模板:

             while (<>)    { chomp;

            if (/.../)  #这里输入需要测试的正则式;

                                 {

                    say "$`<$&>$'";

                    }else{

                            say "no match";

                            }

    }


  • 相关阅读:
    Windows Phone开发31日谈
    Log4Net(二)
    依赖注入容器Autofac的详解
    Windows Phone 学习教程(一)
    Fiddler教程
    MongoDb笔记(一)
    poj 1144 Network
    poj 3185 The Water Bowls
    poj 1753 Flip Game
    poj 2065 SETI
  • 原文地址:https://www.cnblogs.com/agostop/p/2323091.html
Copyright © 2020-2023  润新知