• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Perl之正则表达式--模式匹配

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

      大家用过unix或者linux系统,对vi,sed,grep,awk等使用工具不会陌生,应该了解用于定界符搜索模式的正则表达式和元字符。那么什么是正则表达式呢?正则表达式是一种序列或者字符模式,负责在搜索或者替换文本时对文本内容进行字符串匹配。简单的正则表达式直接由待匹配字符串或字符集构成。

     正则表达式一般以斜杠(/)做界定符。实际上任何字符串都可以成为界定符。例如:/abc/, ?abc?

     表达式修饰符与简单语句

     常见修饰符:if  unless while  until foreach

     if条件修饰符 

          格式     Expression2 if Expression1   如果Expression1表达式为真,则执行Expression2表达式内容。

          demo  

              (1)  $x=5;

                    print $x if x==5;      ====>输出5

              (2)  $_="xabcy\n";

                    print if /abc/;           ====>输出xabcy

             (3) $_="I lost my gloves in the clover.";

                   print "Found love in gloves!\n" if /love/;        ====>输出Found love in gloves!

     unless修饰符 

            格式  Expression2 unless Expression1   如果Expression1为假,则执行Expression2表达式内容。

          demo

            (1) $x=5;

                 print $x unless $x==6; ====>输出5

     while循环修饰符

            格式 Expression2 while Expression1   只要第一个表达式为真,while循环修饰符便会重复执行第二个表达式。

          demo

           (1) $x=1;

                 print $x++,"\n" while $x!=5;   ====>输出1,2,3,4

     until修饰符 

           格式 Expression2 until Expression1  只要第一个表达式为假, while循环修饰符便会重复执行第二个表达式

         demo

          (1) $x=1;

               print $x++,"/n" until $x==5;  ====>输出1,2,3,4

    foreach修饰符

         会逐个判断列表中每个元素的值,并通过标量$_以此引用各个列表元素。

        demo

         (1) @alpha=(a .. z,"\n");

              print foreach @alpha; ====>abcdefghijkmnopqrstuvwxyz

 

  正则表达式运算符

        m运算符与匹配

       demo

       (1) while (<DATA>){

            print if /Betty/      ====>输出 Betty Boop

       }

       __DATA__

      Steve Blenheim

      Betty Boop

      Igor Chevsky   

      Norma Cord

      (2)while (<DATA>){

        print if m#Jon#;     ====>输出Jon DeLoach

      }

     __DATA__

     Steve Blenheim

     Betty Boop

     Igor Chevsky

     Norma Cord

     Jon DeLoach

    

     g全局修饰符

     i修饰符:大小写不敏感

    demo

    (1)$_="I lost my gloves in the clover,Love.";

        @list=/love/gi;

        print "@list . \n";    ====>love love Love

     x表达修饰符用于在正则表达式中放入注释或者空白字符,以便让正则表达式含义更明确。

     demo

     (1) $_="San Francisco to Hong Kong \n";

          /Francisco

         /x;

        print "Comments and spaces were removed and \$& is $&\n";     ====>输出Comments and spaces were removed and $& is Francisco

    S运算符与替换

     demo

    (1)$_="knock at heaven's door. \n";

        s/knock/"knock," *2."knocking"/ei;

        print "He's $_";  ====>He's knock,knock,knocking at heaven's door.

 

   模式绑定运算符

    =~  !~

   demo

   (1) while($_=<DATA>){

       print $_if $_=~/Igor/;   ====>输出Igor Chevsky

  }

   __DATA__

   Steve  Blenheim

   Betty Boop

   Igor Chevsky

   Norma Cord

   (2) while ($_=<DATA>){

      print $_ if $_!~/Igor/;    ====>输入除Igor Chevsky以外的名称

   }

   __DATA__

   Steve Blenheim

   Betty Boop

   Igor Chevsky

   Norma Cord


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Perl高精度计时器发布时间:2022-07-22
下一篇:
15-Perl格式化输出发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap