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

perl正则表达式

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
第一个元字符是圆点(.)。在正则表达式中,圆点用于匹配除了换行符外的任何单个字符。
最简单的通配符是+元字符。+用于使前面的字符与后面的字符至少匹配一次,也可以任意次地进行匹配。
元字符*使得前面的字符可以进行0次或多次匹配。
元字符?用于使前面的字符进行0次或一次匹配(但是不能超过一次)
正则表达式中常用的一个通配符是. *。可以用它来匹配任何东西
 
p a t{n, m}。这里的n是匹配的最小次数,m是匹配的最大次数,p a t是你试图量化匹配的字符或字符组。
/ x { 5,10}/ x至少出现5次,但是不超过1 0次。
/ x { 9,} / x至少出现9次,也可能出现更多次。
/ x { 0,4 } / x最多出现4次,也可能根本不出现。
/ x { 8 } / x必须正好出现8次,不能多,也不能少。
 
perl的正则表达式拥有这样一个工具,它称为字符类。
[ abcde ] 用于匹配a、b、c、d或e中的任何一个字符
[ a-e ] 与上面相同。用于匹配a、b、c、d或e中的任何一个字符
G 用于匹配大写字母G或小写字母g
[ 0-9 ] 用于匹配一个数字
[ 0-9 ] + 用于顺序匹配一个或多个数字
[A-Za-z] { 5 } 用于匹配任何一组5个字母字符
[*!@#$%&()] 用于匹配这些符号中的任何一个
最后一个例子非常有意思,因为在字符类中,大多数通配符会失去它们的“通配符性质”,换句话说,它们的运行特性将类似其他任何一个普通字符。因此,* 实际上代表一个普通的*字符。
如果插入记号( ^)作为字符类中的第一个字符,该字符类将变为无效。也就是说,该字符类可以匹配不在该字符类中的任何单个字符。如下面的例子所示:
/[^a-z]/ 表示匹配a-z之外的任意一个字符。
P e r l包含了某些常用字符类的快捷方式。它们用反斜杠和通配符来表示,如表6 - 2所示。
下面是一些例子:
/\d{5}/      match five digits
/\s\w+\s/   match a group of characters surrounded by white space
模式      用于匹配
\ w       一个单词字符,与[ a - z A - z 0 - 9 _ ]相同
\ W       一个非单词字符(与\ w相反)
\ d       一个数字,与[ 0 - 9 ]相同
\ D       一个非数字
\ s       一个白空间字符,与[ \ t \ f \ r \ n ]相同
\ S       一个非白空间字符
 
 在列表上下文中,匹配运算符返回括号中匹配的表达式的各个部分的一个列表。每个加括号的值都是列表的返回值,如果模式不包含括号,则返回1。请看下面这个例子:
$_="apple is red";
($fruit,$color)=/(.*)\sis(.*)/; #注意这里匹配用的是=,而不是=~。
 ($fruit,$color)=$_=~m/(.*)\sis(.*)/; #或者可以这样写,不知道为啥
 
 最后两个通配符(相信你可能认为通配符是没有止境的)是位置通配符。
/ ^ H e l p / 只只匹配以H e l p开头的行
/ ^ F r a n k l y. * d a r n $ / 只用于匹配以F r a n k l y开头和以d a r n结尾的行。它们中间的所有字符也进行匹配
/ ^ h y s t e r i a $ / 只用于匹配只包含单词h y s t e r i a的行
/ ^ $ / 只用于匹配一行的开头,紧接着匹配该行的结尾。它只用于匹配空行
/ ^ / 只用于匹配带有开头字符的行(所有行)。/ $ /的作用也相同
 替换运算符s / / /
$ch2Name=~s/0\.wav/1\.wav/;
 
 修饰符与多次匹配
替换运算符(s / / /)和匹配运算符(m / /)能够在匹配正则表达式时不考虑大小写字母,如果匹配项的后面跟一个字母i的话。
/luckydog/i
用于匹配和替换的另一个修饰符是全局匹配修饰符g。正则表达式(或替换)的匹配操作不是一次完成的,它要重复通过整个字符串,第一次匹配后,立即进行下一次匹配(或替换)。在列表上下文中,全局匹配修饰符可使匹配代码返回一个放在括号中的正则表达式的各个部分的列表:
 $_="one fish, two frog,three fred,red foul";
@F=m/\W(f\w\w\w)/g;
该模式首先匹配一个非单词字符,然后匹配字母f,接着匹配4个单词字符。字母f和4个单词用括号分组。该表达式被计算后,变量@ F将包含4个元素,即f i s h、f r o g、f r e d和f o u l。
 
 P e r l中的一个常见操作是搜索数组,寻找某些模式。P e r l有一个特殊的函数,可以用来进行这项操作,这个函数称为g r e p。g r e p函数的句法如下:
grep expression,list
 
 
 
 
 
 
 
 
 
 

鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
perl 利用CGI模块上传:取得上传的临时文件名以及文件的MD5发布时间:2022-07-22
下一篇:
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