zoukankan      html  css  js  c++  java
  • Perl中的匹配(六)

    在Perl中,匹配的定界符如果是双斜线//,可以直接使用双斜线完成匹配操作。

                  如果特定条件下需要改变定界符,如改为{},[]等。需要加入m,m{},m[]等。

                               m%^http://%

                  默认的模式匹配对象是自动化变量$_,如果要指定匹配对象,可以使用绑定操作符=~。

                               my $some_other = "I have a Dream";

                               if($some_other =~ /rub/);    ##用右侧的模式对左侧的对象进行匹配。

    模式匹配修饰符:

                 /i表示大小写无关的匹配。

                 /s表示元字符"."可以匹配到换行符。

                 /x表示原匹配对象中的空白符无效,我们可以随意增加分割用的空白符,

                                                         对之前的空格可以使用s字符集来表示。

                 修饰符/a表示用ASCII码的方式解释对象中的字符,/u表示用unicode的方式来解释对象中的字符。

    锚位修饰符:

                A表示字符串的绝对起始位置--行首。

                      m{Ahttps:?://}i; 

               z表示字符串的绝对结束位置--行尾( 之后)。

               脱字符(^)表示行首的首锚位,行尾的尾锚位($),/m主要针对这两个锚位修饰符,

                         使得他们既可以得到行首行尾锚位。又可以锚位字符串首位

               表示行尾锚位,不同的是允许之后可以有换行符。

               表示单词锚位。

                        /freb/;

    捕获变量与捕获组中的反向引用相对用:

               默认使用$1,$2这样的变量来表示,变量内部存储最近一次成功匹配到的值。

                       $_ = "Hello there, neighbor";

                       if(/(S+) (S+) (S+)/) {

                                   print "words were $1,$2,$3 "; }

              自定义命名捕获变量和关闭捕获。

                       if(/(?:bronto)?saurus (steak|burger)/)     ##?:表示关闭捕获功能,不会产生$1;

                              print "I saw $1";                             ##输出steak和burger的捕获值。 

                       if($names =~m/((?<name1>w+) (and|or) (?<name2>w+) g{name1})/) 

                                                ##在该条语句中直接应用反向引用,在下一条语句中使用引用变量。

                              print "I saw $+<name1>";

    自动捕获变量的存储,经过匹配后的数据,可以分为三部分:

    匹配区段之前的字符:可以用$`或${^PREMATCH}

    匹配的字符:可以用$&或者$(^MATCH)

    匹配之后的字符:可以用$'或者$(^POSTMATCH)

  • 相关阅读:
    【JavaScript】JavaScript中的Timer是怎么工作的( setTimeout,setInterval)
    【JavaScript】一些注意点
    【Java】Checked、Unchecked Exception
    【Java】sleep和wait的区别
    【314】putty 自动登录
    【313】python 中 print 函数用法总结
    【312】◀▶ arcpy 常用函数说明
    【311】Python 构建 ArcMap 标注表达式
    【310】◀▶ Python 日期和时间
    java从mysql导出数据例子
  • 原文地址:https://www.cnblogs.com/-9-8/p/5086177.html
Copyright © 2011-2022 走看看