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

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

m%^http://%

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

my $some_other = "I have a Dream";

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

模式匹配修饰符:

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

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

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

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

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

锚位修饰符:

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

m{\Ahttps:?://}i;

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

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

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

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

\b表示单词锚位。

/\bfreb\b/;

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

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

$_ = "Hello there, neighbor";

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

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

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

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)

Perl中的匹配(六)的更多相关文章

  1. Perl中的正则表达式

    转自:http://c20031776.blog.163.com/blog/static/684716252013624383887/ Perl 程序中,正则表达式有三种存在形式 分别是 (1 模式匹 ...

  2. Perl中的替换(七)

    在Perl中使用s///进行替换操作,与m//进行查找操作类似. s/with (\w+)/against $1's team/;      ##第一个双斜线,表示被替代的文本.第二个双斜线,表示将替 ...

  3. perl中的grep函数介绍

    grep函数 (如果你是个的新手,你可以先跳过下面的两段,直接到 Grep vs.loops 样例这一部分,放心,在后面你还会遇到它) <pre>grep BLOCK LISTgrep E ...

  4. 在 Perl 中使用 Getopt::Long 模块来接收用户命令行参数

    我们在linux常常用到一个程序需要加入参数,现在了解一下 perl 中的有关控制参数的模块 Getopt::Long ,比直接使用 @ARGV 的数组强大多了.我想大家知道在 Linux 中有的参数 ...

  5. Perl中的正则表达

    前几天用到了Perl语言,主要看了一下Perl中的正则表达式,在各种网页语言中,正则表达式在处理字符串的时候十分有用,所以这里就简单说一下在Perl中正则表达式的应用. 先上代码 #!/usr/bin ...

  6. 在Perl中使用Getopt::Long模块来接收用户命令行参数

    我们在linux常常用到一个程序需要加入参数,现在了解一下perl中的有关控制参数的函数.getopt.在linux有的参数有二种形式.一种是–help,另一种是-h.也就是-和–的分别.–表示完整参 ...

  7. smix到底是个啥?Perl的正则表达式匹配模式

    最近在研究一个perl项目,临时学习了一下perl语法,强行看项目源码.因为总是见到各种正则表达式后面接smxi之类,虽然知道是匹配模式,但脑子里毫无概念.所以特地去学习了一下. 以上为背景. Per ...

  8. 【转载】Perl中字符串编码的处理

    在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编 ...

  9. 【转】perl中尖括号运算符(<>)使用说明

    perl中尖括号运算符的用途分享,这里简单介绍下,方便需要的朋友 perl中<>运算符可以有如下的用途: 1)如果尖括号中间是文件句柄,尖括号运算符允许你读取文件句柄,比如<STDI ...

随机推荐

  1. 兼容加载Xml字符串

    var _loadXML = function(xmlString){ var xmlDoc=null; //支持IE浏览器 if(!window.DOMParser && windo ...

  2. HTML5新标签和属性

    1.<time>标签(支持IE9以上和其他浏览器) 今年是<time datetime="2015-12-12">2015年</time> &l ...

  3. CentOS7 + linux kernel 3.10.94 compile 简记

    Linux kernel 一直以其开源著称,可以自己编译选择合适的模块,针对特定的系统可以有不同的编译选项 来源 此次编译的内核版本为3.10.94,从官网www.kernel.org下载而来,自己虚 ...

  4. UIBezierPath 画线

    使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线 ...

  5. HTML-003-模拟IDE代码展开收起功能简单示例

    当先我们在日常的编程开发工作中使用编程工具(例如 Eclipse.Sublime 等等)都有相应的代码折叠展开功能,如下图所示,极大的方便了我们的编码工作.

  6. Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver

    此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源 ...

  7. SQLServer DMV Query

    1.DMV Query to identify all active SQL Server Sessions The query below identifies all currently acti ...

  8. JQuery:JQuery操作CSS类

    JQuery:CSS类jQuery - 获取并设置 CSS 类,通过 jQuery,可以很容易地对 CSS 元素进行操作.jQuery 操作 CSSjQuery 拥有若干进行 CSS 操作的方法.我们 ...

  9. INSIDE COM 最后一章例子 TANGRAM 编译笔记

    VS2013项目下载地址: http://pan.baidu.com/s/1gemrBrl 注册并运行: 使用管理员权限. 运行 REGISTER.BAT. 然后运行 TANGRAM.EXE 即可. ...

  10. jose4j / JWT Examples

    jose4j / JWT Examples View History JSON Web Token (JWT) Code Examples Producing and consuming a sign ...