找回密码
 加入
搜索
查看: 64612|回复: 120

[转贴] 正则的一点资料--perl/pcre正则表达式元字符/转义字符/量词/匹配方式(新添加一张图)

 火... [复制链接]
发表于 2012-11-29 15:34:12 | 显示全部楼层 |阅读模式
本帖最后由 annybaby 于 2012-12-16 12:27 编辑

最新上传了一些收藏的正则资料,打包了~~ 学习正则的同学基本上不用再到处找了,以文档为主~~百度免税通道,地址回复可见

游客,如果您要查看本帖隐藏内容请回复


坛子虽然已经有一些正则资料了,但不少都与AU3不符合的~~故贴些上来,以备查阅~~
高手路过即可~~

元字符(Meta-character)

'\' : 引用下一个元字符
'^' : 行首
'.' : 除新行(newline)外的任一字符('/s'选项将使'.'匹配新行字符)
'$' : 行尾(或结尾处新行之前字符)
'|' : 可选项
'('与')' : 分组
'['与']' : 字符类。表示一类字符集合中任意一个,方括号内可使用'-'表示范围,如[0-9]; 也可使用'^表示求补集,如[^0-9]表示除0-9外的其他字符

量词(Quantifier)

'*' : 0或任意次
'+' : 1或更多次
'?' : 0或1次
{n} : n次
{n,} : 至少n次
{n, m} : n到m次
匹配方式

贪婪(greedy)方式:在模式其余部分匹配前提下,尽可能多地匹配字符
最少匹配(minimum): 尽可能少地匹配。量词后使用'?'表示使用最少匹配方式
占有式:与贪婪方式相近,尽可能多地匹配字符,但绝不回退(backtrack,即使模式其余部分无法匹配,也不减少本部分的匹配数量)。在数量词之后使用'+'表示使用占有式匹配。
转义序列

'\t' : 制表符(HT, TAB)
'\n' : 换行(LF, NL)
'\r' : 回车(CR)
'\f' : 进纸(Form Feed, FF)
'\a' : 报警 (Alarm, BEL)
'\e' : 转义(ESC)
"\0xx" : 八进制数值对应字符,如\033表示ESC
"\xhh" : 16进制数值对应字符,如\x1B表示ESC
"\x{hhhh}" : 16进制long型数值对应字符,如\x{263a}表示unicode SMILEY
"\cK" : K可以为任意字母,表示控制字符"control-K","\cK"表示如VT
"\N{name}" : unicode命名字符
"\N{U+hhhh}" : unicode字符
'\l' : 小写下一字符
'\u' : 大写下一字符
'\L' : 小写随后字符串直至'\E'
'\U' : 大写随后字符串直至'\E'
'\E' : 结束大小写转换
'\Q' : 引用随后字符(禁止转义)直至'\E'
字符类及其他转义字符

'\w' : 匹任任一单词(word)字符(26个英文字母、10个数字,加下划线'_')
'\W' : 匹配任一非单词字母
'\s' : 任一空白字符(空格' ', 制表符'\t'等)
'\S' : 任一非空白字符
'\d' : 任一数字字符[0-9]
'\D' : 任一非数字字符
“\pP” : 匹配命名属性P
"\PP" : 匹配非P
'\X' : 匹配unicode扩展字符集(eXtended grapheme cluster)
'\C' : 匹配单个C字符(字节),即使工作在unicode模式下
'\n' : n为数字,后向引用指定组n
"\gn" : 后向引用指定组n
"\g{-n}" : 表示相对(当前位置之前的)第n个后用引用组n
"\g{name}" : 后向引用命名组(name)
"\k{name}" : 后向引用
'\K' : 使\K左侧部分,不引入到$&中
'\N' : 除'\n'外的任一字符
'\v' : 垂直空白符
'\V' : 非垂直空白符
'\h' : 水平空白符
'\H' : 非水平空白符
'\R' : 行分割符号
POSIX字符类

POSIX字符类表示语法:[:class:], 在pattern中则必须写为"[[:class:]]"。

"[[:alpha:]]" : (英文)字母
"[[:alnum:]]" : 字母或数字字符
"[[:ascii:]]" : ASCII字符集中字符
"[[:blank:]]" : GNU扩展,等价于空格' '或水平制表符'\t'
"[[:cntrl:]]" : 任一控制字符
"[[:digit:]]" : 任一数字字符,等价于'\d'
"[[:graph:]]" : 除空格外的任一可打印字符
"[[:lower:]]" : 任一小写字符
"[[:print:]]" : 任一可打印字符,包括空格
"[[:punct:]]" : 除单词字符(字母,'_')外的任一图形字符
"[[:space:]]" : 任一空白字符,等价于'\s'垂直制表符"\cK"
"[[:upper:]]" : 任一大写字符
"[[:word:]]" : Perl扩展, 等价于'\w'
"[[:xdigit:]]" : 任一16进制数字
Perl中,"[[^:class:]]"表示posix指定类的补集,这种情况下也可略去[::],在类名前加'^'表示为"[^class]"。

Assertion

'\b' : 单词边界
'\B' : 非单词边界
'\A' : 字符串首
'\Z' : 字符串尾或尾部换行字符之前
'\z' : 字符串尾
'\G' : 在上一个匹配处进行匹配

++++++++++++++添加一张图,来源于网上,感谢原作者~~++++++++++

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 7金钱 +240 贡献 +10 收起 理由
peter13447 + 10 支持,好东西
xms77 + 30 + 2 很全面的正则学习资料~!
afan + 50 + 3 +
131738 + 100 + 5
轩辕小妖 + 20 学习下~~

查看全部评分

 楼主| 发表于 2012-11-29 15:53:45 | 显示全部楼层
回复 1# annybaby

沙发自己坐,让别人坐板凳或者站着吧 ~_~

上面的资料中,经常用到的最基本的有:
\d \w \s \h \b ^ $ . ? + * 及()分组 [...]分类等都很常用,新手可以先考虑捣鼓下这几个,熟了这几类都可以玩出不少花样啦,至于后面的:[:class:]因为基本都有更简短的表示法,所以比较少用
发表于 2012-11-29 17:08:24 | 显示全部楼层
谢谢楼主,最近楼主很活跃啊。 正则不仅是au3,其他的语言都能用到。我是用的时候才学习。

评分

参与人数 1金钱 +10 收起 理由
annybaby + 10 坐冷板凳,有分加~哈哈

查看全部评分

发表于 2012-11-29 18:59:20 | 显示全部楼层
我來坐冷板凳了 ~ 正則真是我的死穴。

评分

参与人数 1金钱 +20 收起 理由
annybaby + 20 一起学习~~

查看全部评分

发表于 2012-11-29 21:06:20 | 显示全部楼层
正則應該要認真學,不過太偷懶,
每次都是找資料,應付過了事,
感謝版大的教學與提醒!
发表于 2012-11-29 22:39:55 | 显示全部楼层
喜欢正则,谁用谁知道
发表于 2012-11-29 23:29:00 | 显示全部楼层
我电脑里也有好多正则的资料,不过好乱,好多是java的,好像和AU有点不同~~
发表于 2012-12-4 18:24:40 | 显示全部楼层
annybaby楼主要是再搞几个实用的教程就更好了,特别在网页取词及网页表格处理方面。
 楼主| 发表于 2012-12-16 12:09:55 | 显示全部楼层
回复 8# sleep365

我自己也只是只小菜鸟,哪敢出教程啊,不怕笑si人??
网页取词举个例吧,比如说,取论坛帖子每页里面用户名

uid=\d+.+\d+">(.+)</a>
发表于 2012-12-16 12:33:23 | 显示全部楼层
谢谢LZ  
发表于 2012-12-16 14:21:15 | 显示全部楼层
回复 1# annybaby
每次决心耐性地学习正则,每次都不能坚持下去。
发表于 2012-12-16 18:24:36 | 显示全部楼层
收藏的正则资料,打包了
发表于 2012-12-16 21:21:57 | 显示全部楼层
学习过了就会忘,每次都是边看学习资料边写正则,是在不行求助论坛了。
发表于 2012-12-16 22:29:14 | 显示全部楼层
面的资料中,经常用到的最基本的有:
发表于 2012-12-17 08:56:36 | 显示全部楼层
这个不错收藏了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 04:13 , Processed in 0.085999 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表