设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 9447|回复: 11

Perl正则表达式   [复制链接]

LT管理团队

社区首席勤杂工

Rank: 9Rank: 9Rank: 9

签到
470
注册时间
2008-5-19
最后登录
2018-12-7
在线时间
1943 小时
阅读权限
200
积分
58977
帖子
2551
主题
1209
精华
25
UID
1

LT总司令

发表于 2009-2-10 17:18:43 |显示全部楼层
一 常规表达式中,/pattern/常用到的语法
         
/pattern/结果

除了换行字符\n外,找寻只有一个字符的字符串
x?找寻0个或是1个x字符
x*找寻0个或是0个以上的x字符
.*找寻0个或是0个以上的任何字符
x+找寻0个或是1个以上的x字符
.+找寻1个或是1个以上的任何字符
{m}找寻刚好是m个个数指定的字符
{m,n}找寻在m个数个数以上,n个个数以下指定的字符
{m,}找寻m个个数以上指定的字符
[]找寻符合[]内的字符
[^]找寻不符合[]内的字符
[0-9]找寻符合0到9的任何一个字符
[a-z]找寻符合a到z的任何一个字符
[^0-9]找寻不符合0到9的任何一个字符
[^a-z]找寻不符合a到z的任何一个字符
^找寻字符开头的字符
$找寻字符结尾的字符
\d找寻一个digit(数字)的字符,和[0-9]语法一样
\d+找寻一个digit(数字)以上的字符串,和[0-9]+语法一样
\D找寻一个non-digit(非数字)的字符,和[^0-9]语法一样
\D+找寻一个non-digit(非数字)以上的字符,和[^0-9]+语法一样
\w找寻一个英文字母或是数值的字符,和[a-zA-Z0-9]语法一样
\w+找寻一个以上英文字母或是数值的字符,和[a-zA-Z0-9]+语法一样
\W找寻一个非英文字母,数值的字符,和[^a-zA-Z0-9]语法一样
\W+找寻一个以上非英文字母,数值的字符,和[^a-zA-Z0-9]+语法一样
\s找寻一个空白的字符,和[\n\t\r\f]一样
\s+找寻一个以上空白的字符,和[\n\t\r\f]+一样
\S找寻一个非空白的字符,和[^\n\t\r\f]一样
\S+找寻一个以上非空白的字符,和[^\n\t\r\f]+一样
\b找寻一个不以英文字母,数值为边界的字符串
\B找寻一个以英文字母,数值为边界的字符串
a|b|c找到符合a字符或是b字符或是c字符的字符串
abc找到一个含有abc的字符串
(pattern)                 ()这个符号是会记忆所找寻到的字符,是一个很实用的语法
                  第一个()内所找到的字符串变成$1这个变量或是\1变量
                  第二个()内所找到的字符串变成$2这个变量或是\2变量
                  以此类推,笔者会在下一小节中详细介绍它的用法               
/pattern/ii这个参数是代表忽略英文大小写的意思,也就是在找寻字符                 串的时候,不会去考虑英文的大小写
\如果要在pattern模式中找寻一个有特殊的意义的字符,要在                 这个字符前加上\这个符号,这样才会让这个特殊字符失效

          二 常规表达式(Regular Expression)的简单范例
                看了上一小节文字处理模(Regular Expression)之的,初学者对于这个语法的应用可能还不是很清楚,所以笔者会在这一小节中,举出一些在常规表达式中常用的范例给大家看看:
                     
范例说明
/perl/找到含有perl的字符串
/^perl/找到开头是perl的字符串
/perl$/找到结尾是perl的字符串
/c|g|i/找到含有c或g或i的字符串
/cg{2,4}i/找到c后面跟着2个到4个g,再跟着i的字符串
/cg{2,}i/找到c后面跟着2个以上g,再跟着i的字符串
/cg{2}i/找到c后面跟着2个g,再跟着i的字符串
/cg*i/找到c后面跟着0个或多个g,再跟着i的字符串,如同/cg{0,1}i/
/cg+i/找到c后面跟着一个以上g,再跟着c的字符串,如同/cg{1,}i/
/cg?i/找到c后面跟着0个或是一个g,再跟着c的字符串,如同/cg{0,1}i/
/c.i/找到c后面跟着一个任意字符,再跟着i的字符串
/c..i/找到c后面跟着二个任意字符,再跟着i的字符串
/[cgi]/找到符合有这三个字符任意一个的字符串
/[^cgi]/找到没有这三个字符中任意一个的字符串
/\d/找寻符合数值的字符串
                可以使用/\d+/来表示一个或是多个数值的字符串
/\D/找寻符合不是数值的字符串
                可以使用/\D+/来表示一个或是更多个非数值的字符串
/\w/找寻符合英文字母,数值的字符串
                可以使用/\w+/来表示一个或是更多个英文字母,数值的字符串
/\W/找寻符合非英文字母,数值字符的字符串
                可以使用/\W+/来表示一个或是更多个非英文字母,数值的字符串
/\s/找寻符合空白的字符串
                可以使用/\s+/来表示一个或是更多个空白字符的字符串
/\S/找寻符合不是空白的字符串
                可以使用/\S+/来表示一个或是更多不是空白的字符的字符串
/\*/找寻符合*这个符号的字符串,因为*在常规表达式中有它的特殊意思,所以要在这个特殊符号前加上\这个符号,这样才会让这个特殊字符失效
/abc/i找寻符合abc的字符串而且不考虑这些符合字符串的大小写
<-sina_sign,1762622645,2a5b1a59,10->感谢大家对linuxtone的支持!</strong>

Rank: 4

注册时间
2009-5-23
最后登录
2019-3-8
在线时间
16 小时
阅读权限
50
积分
1302
帖子
8
主题
0
精华
0
UID
3212
发表于 2009-11-26 10:46:28 |显示全部楼层
呵呵,辛苦了,收了

使用道具 举报

Rank: 2

注册时间
2010-3-17
最后登录
2011-11-24
在线时间
12 小时
阅读权限
20
积分
98
帖子
56
主题
20
精华
0
UID
8354
发表于 2010-3-22 23:51:41 |显示全部楼层
正则表达式图解
regex.png

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-13
最后登录
2018-1-31
在线时间
250 小时
阅读权限
90
积分
27000
帖子
99
主题
8
精华
0
UID
10602
发表于 2010-10-31 12:06:55 |显示全部楼层
恩,好,学习……

使用道具 举报

Rank: 6Rank: 6

注册时间
2010-10-28
最后登录
2013-10-16
在线时间
167 小时
阅读权限
70
积分
2302
帖子
133
主题
16
精华
0
UID
10745
发表于 2010-12-8 10:40:55 |显示全部楼层
资料不错,收藏了。O(∩_∩)O谢谢分享,辛苦了

使用道具 举报

论坛元老

小运维——知我罪我,其惟UNIX-like

Rank: 8Rank: 8

注册时间
2010-11-12
最后登录
2016-8-4
在线时间
1122 小时
阅读权限
90
积分
91360
帖子
477
主题
21
精华
0
UID
11131
发表于 2010-12-8 10:46:28 |显示全部楼层
多谢LZ共享!学习之!

使用道具 举报

Rank: 3Rank: 3

注册时间
2010-6-23
最后登录
2014-7-25
在线时间
8 小时
阅读权限
30
积分
521
帖子
16
主题
0
精华
0
UID
9602
发表于 2011-4-12 18:26:51 |显示全部楼层
顶,非常不错。

使用道具 举报

论坛元老

社区清洁工

Rank: 8Rank: 8

注册时间
2010-2-8
最后登录
2019-2-21
在线时间
304 小时
阅读权限
90
积分
46778
帖子
773
主题
29
精华
0
UID
7902
发表于 2011-4-13 10:11:16 |显示全部楼层
相当不错的语法规则,学好perl终生受用!

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-25
最后登录
2016-6-29
在线时间
356 小时
阅读权限
90
积分
23577
帖子
271
主题
44
精华
0
UID
10721
发表于 2011-8-14 12:14:19 |显示全部楼层
很好的  学习

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-8-18
最后登录
2019-3-8
在线时间
2675 小时
阅读权限
90
积分
18983
帖子
1200
主题
1142
精华
0
UID
10137
发表于 2011-9-2 00:14:05 |显示全部楼层
:victory::victory:

使用道具 举报

Rank: 8Rank: 8

注册时间
2011-9-26
最后登录
2017-11-6
在线时间
307 小时
阅读权限
90
积分
88626
帖子
152
主题
7
精华
0
UID
15687
发表于 2013-5-5 20:56:29 |显示全部楼层
恩,好,学习……

使用道具 举报

Rank: 8Rank: 8

注册时间
2012-3-27
最后登录
2014-2-11
在线时间
57 小时
阅读权限
90
积分
17717
帖子
18
主题
0
精华
0
UID
19032
发表于 2013-5-7 10:00:11 |显示全部楼层
顶~~~~~~~~~~~~~~~~~~~~~~

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2019-3-26 00:28 , Processed in 0.030870 second(s), 16 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部