声明:本神奇的Perl系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载
第五章 正则表达式
1. PERL正则基础
正则表达式是一种序列或字符模式,负责在搜索和替换文本时对文本内容进行字符串匹配。Perl中的正则表达式由待匹配字符串或模式串或2者混合而成,一般以斜杠(/)作为定界符。
Perl正则模式串主要有以下几种:
. 匹配单个除换行符以外的字符
a? 匹配 0 次或一次 a 字符(a为任意字符,如:a*、b*、2*等)
a* 匹配 0 次或多次 a 字符(a为任意字符,如:a*、b*、2*等)
a+ 匹配 1 次或多次 a 字符(a为任意字符,如:a+、b+、2+等)
.* 匹配 0 次或一次的任何字符
.+ 匹配 1 次或多次的任何字符
{m} 匹配刚好是 m 个 的指定字符
{m,n} 匹配在 m个 以上 n个 以下 的指定字符
{m,} 匹配 m个 以上 的指定字符
[] 匹配符合 [] 内的字符
[^] 匹配不符合 [] 内的字符
(x|y) 匹配x或y
(x) 匹配x模式串
[0-9] 匹配单个数字
[a-z] 匹配单个小写字母
[^0-9] 匹配单个非数字字符
[^a-z] 匹配单个非小写字母字符
^ 匹配字符开头的字符
$ 匹配字符结尾的字符
\d 匹配单个数字的字符,和 [0-9] 语法一样
\d+ 匹配多个数字字符,和 [0-9]+ 语法一样
\D 单个非数字字符
\D+ 匹配多个非数字字符
\w 单个英文字母或数字的字符,
\W 单个非英文字母或数字的字符
\W+ 匹配多个非英文字母或数字字符
\s 空格等同于 [ \n\t\r\f]
\s+ 等同于 [ \n\t\r\f]+
\S 单个非空格字符
\S+ 多个非空格字符
我们来看几个例子:
/abc/ 匹配所有包括abc的字符串,比如,匹配“123abcxxx”、“abcde”。
/ab(c|d)/ 匹配所有包括abc或abd的字符串,比如,匹配“123abcxxx”、“abde88”
/abc\d+/ 匹配所有包括abc后接至少一个数字的字符串,比如,匹配“xxabc456”、 “abc678de”。
/^abc\d+/ 匹配所有以abc后接至少一个数字开头的字符串,比如,匹配“abc456”、 “abc678de”,不匹配“xxabc456”、 “xxbc456”。
/^abc\d+$/ 匹配所有以abc开头,至少一个数字结尾,且abc后接至少一个数字的字符串,换句话说,仅匹配符合abc后接至少一个数字,不包括任何其它字符。比如,匹配“abc456”、 “abc1”,不匹配“abc456x”、 “bc456”、“abc”。
/[^0-9]abc\d+/ 匹配所有包括非数字字符后接abc及至少一个数字的字符串,比如,匹配“xyabc456”、 “aabc1”,不匹配“456abc98”、 “bdc456”、“0abc1”。
/^[^0-9]abc\d+/ 匹配所有以非数字字符后接abc及至少一个数字的形式开头的字符串,比如,匹配“aabc456”、 “xabc1you”,不匹配“8abc98ww”、 “bd456”、“0abc1”。
分享到:
相关推荐
Perl兼容正则表达式解析库,本资源包是作者制作的静态库,版本为7.8。使用VC6在WinXp下编译通过。使用时请将pcre.h放到VC的include目录下。
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...
在众多语言中都可以支持正则表达式,如Perl、PHP、Java、Python、Ruby等。当然在Java中也可以通过处理字符串的方式达到检索,替换文本字符串的目的,但是有了正则表达式写代码更加简洁,通常两三行代码就可以达到...
grep、sed、awk、perl等对正则表达式的支持的差别,大牛总结的,适合高手参考用。
《学习正则表达式》从正则表达式的基本概念讲起,到编写完整的sed和Perl脚本,再到转换HTML文件,将这种强大的工具解释得清晰透彻。书中贯穿了大量简洁明了的示例,旨在让读者轻松掌握正则表达式。此外,书中各在线...
DEELX 是一个在 C++ 环境下的与 Perl 兼容的正则表达式引擎
计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的...例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。
C语言正则表达式库,兼容perl的正则表达式库,使用简介、方便
一个可以非常快的查找Perl正则表达式的手册
perl 正则表达式 perl 正则表达式 perl 正则表达式
粗略地说,JavaScript 1.2实现了Perl 4的正则表达式,JavaScript 1.5实现了Perl 5的正则表达式的大型子集。 本章定义了正则表达式用来描述文本模式的语法。它还介绍了使用正则表达式的String与RegExp方法。
对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,《正则表达式经典实例》给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。...
学习perl正则表达式的好资料,喜欢的可以下载来看看。。。
Perl正则表达式讲解_摘自Perl编程详解.pdf
Perl正则表达式,常用函数和特殊变量,便于速查
正则表达式是程序员必备的强大工具,得到了各种Unix实用程序,以及Perl、Java、JavaScript、C#等编程语言的支持。读完本书,你会对正则表达式的常用语法了然于胸。掌握正则表达式是提升编程效率、节约时间的一大法.....
例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成"regex",单数有regexp、regex,复数有regexps、regexes、regexen...
正则表达式(Regular Expression,简称:Regex)是一种文本模式的表示方法,它使用单个字符串来描述、匹配一系列...正则表达式在不同的编程语言和工具中都有广泛的应用,例如Python、JavaScript、Perl、grep、sed等。
例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、...