Perl中的正则表达式(五)
正则表达式(Regular Expression),在Perl里边通常也叫做模式(Pattern),用来表示匹配(或不匹配)某个字符串的特征模板。
使用简单模式:若模式匹配的对象是$_的内容,只要把模式写在一对斜线(/)中就可以了。
$_ = "yabba dabba doo"; if(/ab\tba/) {print "......";} ##所有在双引号内的特殊字符,都可以在//内使用。
Unicode中的字符的属性,放在\p{PROPERTY}。只要把小写的p改成大写,就表示否定意义。
if(/\p{Space}/) {} ##匹配空白符
if(/\p{Digit}/) {} ##匹配数字
if(/\p{Hex}\p{Hex}/) {} ##匹配十六进制数字的字符集合[0-9A-Fa-f]
元字符:点号(.)匹配任意一个字符的通配符。如果需要仅仅匹配元字符,可以加反斜线\转义。
简单的量词:星号(*)用来匹配前面条目零次或多次。(.*)匹配任意多字符无限次。
加号(+)匹配前一条目一次以上。问号(?)匹配前一条目一次或没有。
大括号{},表示具体的重复次数。 ##/a{5,15}/重复5次到15 次。
##/a{5,}/最少重复一次。
模式分组:可以用圆括号()来对字符串分组。
/fred+/与/(fred)+/ ##匹配不同量
捕获组:可以通过反向引用来引用圆括号中的模式所匹配的文字。
if(/y(.)(.)\2\1/) {print "";} ##\1,\2分别对应顺序的捕获组,按左括号的顺序来标号。匹配进行时的引用
if(/(.)\g{1}11/) {print "";} ##g{1}来显式的指明第一个括号,避免歧义。
if(/(.)(.)\g{-1}11/) {print "";} ##g{-1}相对反向引用,指前一个捕获组中的数据,这样在增加捕获组时,
保证序号不需要改变
择一匹配:竖线(|),要么匹配左边的内容,要么匹配右边的内容。需要加入括号来限制范围。
/fred( |\t)+barney/ ##匹配至少一个空格或制表符或两个。
字符集:指出一组可能出现的字符,写在方括号[]内表示。只匹配单个字符。在一个字符集的首部加入脱字符(^),表示否定含义。
if(/HAL-[0-9]+/) ##匹配数字0-9
[^n\-z] ##除n,连字符,z之外的任何字符。连接字符(-)在[]中含有特殊含义,所以必须加反斜线\转义。
字符集的简写: /HAL-\d+/ ##\d表示任何一个数字字符集的简写,包括ASCII和Unicode。
if(/HAL-[\d]+/a) ##//a表示严格按照ASCII的范围来匹配数字字符。
if(/\s/a) ##\s匹配任意的空白符,/\s/a表示匹配ASCII的空白符。
if(/\R/) ##\R匹配任意的断行符。
if(/\w/) ##\w匹配[a-zA-Z0-9_],主要是匹配Perl所承认的标示符,所以会有下划线_。
相应的反义简写:[^\d], [^\w], [^\s]等价于\D, \W, \S。
if([\d\D]) ##匹配任意的字符,包括换行符,比元字符(.)范围还要广。
Perl中的正则表达式(五)的更多相关文章
- Perl中的正则表达式
转自:http://c20031776.blog.163.com/blog/static/684716252013624383887/ Perl 程序中,正则表达式有三种存在形式 分别是 (1 模式匹 ...
- Perl中的正则表达
前几天用到了Perl语言,主要看了一下Perl中的正则表达式,在各种网页语言中,正则表达式在处理字符串的时候十分有用,所以这里就简单说一下在Perl中正则表达式的应用. 先上代码 #!/usr/bin ...
- perl学习之正则表达式
9 Perl 中的正则表达式 正则表达式的三种形式 正则表达式中的常用模式 正则表达式的 8 大原则 正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很 ...
- 在vi vim中使用正则表达式与 普通perl正则的区别?
参考这篇文章很好 vim中的正则表达式常用的命令有种, 即搜索和替换 /: 搜索 :s 替换 在vim中的正则表达式和perl编程的正则表达式还是有区别的: 正则表达式中的内容包括: 字面字符... ...
- JavaScript中的正则表达式(终结篇)
JavaScript中的正则表达式(终结篇) 在之前的几篇文章中,我们了解了正则表达式的基本语法,但那些语法不是针对于某一个特定语言的.这篇博文我们将通过下面几个部分来了解正则表达式在JavaScri ...
- VIM中的正则表达式及替换命令
VIM中的正则表达式及替换命令 一.使用正则表达式的命令 使用正则表达式的命令最常见的就是 / (搜索)命令.其格式如下: /正则表达式 另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正 ...
- PHP中有关正则表达式的函数集锦
之前学正则表达式的目的是想从网上抓取点小说啊,文档啊,还有获取相应的视频连接然后批量下载.当时初学PHP根本不知道PHP有专门抓包的工具,就像Simple_html_dom.php(在我的其他博文中有 ...
- Python::re 模块 -- 在Python中使用正则表达式
前言 这篇文章,并不是对正则表达式的介绍,而是对Python中如何结合re模块使用正则表达式的介绍.文章的侧重点是如何使用re模块在Python语言中使用正则表达式,对于Python表达式的语法和详细 ...
- 解析posix与perl标准的正则表达式区别 ---PHP
正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式.正规表示式或常规表达式或正规化表示法或正规表示法,是指一个用 来描述或者匹配一系 ...
随机推荐
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十:SDRAM模块③ — 页读写 α
实验二十:SDRAM模块③ — 页读写 α 完成单字读写与多字读写以后,接下来我们要实验页读写.丑话当前,实验二十的页读写只是实验性质的东西,其中不存在任何实用价值,笔者希望读者可以把它当成页读写的热 ...
- 【BZOJ1478】Sgu282 Isomorphism Pólya定理神题
[BZOJ1478]Sgu282 Isomorphism 题意:用$m$种颜色去染一张$n$个点的完全图,如果一个图可以通过节点重新标号变成另外一个图,则称这两个图是相同的.问不同的染色方案数.答案对 ...
- [C#/Java] C#中调用Servlet示例
需求 通用消息接口使用servlet作为服务器端服务接口,第三方应用程序通过http post的方式调用servlet,实现与通用消息接口的调用连接. 参数说明如下: msgTitle:消息标题,描述 ...
- Spring Cloud Eureka 服务治理机制
服务提供者 服务提供者在启动的时候会通过发送REST请求的方式将自己注册到Eureka Server上,同时带上了自身服务的一些元数据信息.Eureka Server 接收到这个RE ...
- Python面向对象之字段
类成员: 字段,方法,属性 属性是在一个函数方法前面加一个装饰器,伪造成为一个字段,调用的时候不需要加括号() 目的是把一个方法伪造成为一个字段,属性也是方法的一种,对这个方法进行改造就可以以 字段的 ...
- codeforces 586B/C
题目链接:http://codeforces.com/contest/586/problem/B B. Laurenty and Shop time limit per test 1 second m ...
- linux服务器的性能分析与优化
[1]影响Linux服务器性能的因素 操作系统级 Ø CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能. 在linux系 ...
- Map集合遍历
Map<String,String> map = new HashMap<String, String>(); map.put("1","java ...
- http://www.cnblogs.com/linxiyue/p/8244724.html
http://www.cnblogs.com/linxiyue/p/8244724.html
- php 实现栈结构
一.栈的定义及知识 1.定义:栈又称为栈或者堆叠,是计算机科学中的一种特殊的串列形式的抽象数据类型,特殊之处在于只允许在链表或者数组的一端(堆栈顶端指针,又称 "top")加入数据 ...