您的位置:首页 > 其它

perl正则表达式不完全手册

2010-01-17 14:30 190 查看
perl正则表达式不完全手册

一.正则表达式Regular Expression
1.模式Pattern,正则表达式又称Pattern
2.模式一般用来返回真(true)或假(false)的值
3.模式pattern把无限数量的字符串集合分成2组:匹配的组和不匹配的组.即表达的计算出来的结果要码匹配要码不匹配,不有“可能,也许,似乎”
4.可以放在双引号字符串中常见的反斜杠转义符都可以被用在pattern中
5.pattern如果不能在一个字符串开始处匹配,那么就会沿着字符串向下浮动,以试图在其它地方匹配.

二.元字符Meta Character
1.任何元字符在pattern中都有特殊含义
2.任何元字符加上了反斜杠都不再特别
3.如果想匹配反斜杠(/),则必须使用一对反斜杠

点号(.)?匹配任何单个字符,除了换行符(/n)以外.
1.让点号匹配一个英文句号则应该用(/)来转义

数量符Quantifier
星号(*)?匹配前面条目的0次或多次
1.前面的那个东西,任意次数,甚至0次数
2./.*/可以匹配任何字符,任意次数。称为“任何数据模式”
加号(+)?匹配前面条目的1次或多次
1.前面的那个东西,至少1次
问号(?)?前面的条目是可选的
1.前面的那个东西,0次(即根本不发生)或者1次
{}?通用数量符
1.数字指定重复的最最少和最多数
/a{5,10}/ 表示重复5到10次的a
2.省去了第二个数,但包含了逗号,那么匹配的数没上限
3.省去了第二个,也不包含逗号,那么匹配的数就是一个准确的数目
4. * == {0,} + =={1,} ?={0,1}

括号()?组序列分组,提高优先级别
/(fred)+/ 匹配 fredfred
/fred+/ 匹配 fredd

记忆小括号()和反向引用
1.的向引用标记序号时,可以只数左(开)括号
/((fred|wilma)(ericjonah))/
1 2 3
/((fred|wilma)(ericjonah))/1/
/((fred|wilma)(ericjonah))/2/

坚线|?表示选择,即或。
1.要码左侧匹配要码右侧匹配
/fred|barney|betty/ 表示 或fred或barney或betty
2.如果左则不匹配,则右则有机会匹配
3.指同一个级别的或,同一组内的选择
4.可以拆分
/fred (and|or) barney)/ 等同于 /fred and barney | fred or barney/

锚位符anchor
用来为模式指定字符串的特定位置
脱字符(^)?标志字符的头
美元符($)?标志字符的尾
/^fred/ 只匹配fred开头的字符串
/fred$/ 只匹配fred结尾的字符串
/^/s*$/ 匹配一个空行

字符类character
中括号[]?列表,但只匹配列表中的一个字符
/[abcwxyz]/
横- ?指定范围
1.在[]内中-符号要转义,在[]外部-字符不必转义
/[0/-9]/
/0-9/
2.指定字符类的范围
[a-cw-z]等同于[abcwxyz]
脱字符(^)?在列表中表示不包含列表中的字符.有排他之意
/[^def]/除了def以外的任何字符

字符类快捷方式
1. //d/ 所有的数字字符,即/[0-9]/
2. //w/ 单词字符,即/[a-zA-Z0-9_]/
1.1单词指的是由字母,数字,下划线组成的字符类列表
1.2 //w/不匹配一个“单词”.只是匹配一个“单词”中的一个字符.
1.3可以使用//w+/来匹配一个单词
3.//s/ 空白字符串,即[/f/t/n/r ]
1.1共5种空格:换页符,制表符,换行符,回行符和空格自身
1.2 //s/只匹配类中的一个字符。所以//s*/匹配符意数量的空白
1.3 很少见到不带数量的 /s

4.反置快捷方式//D/,//W/,//S/
1.1他们表增的函意是 /[^/d]/,/[^/w]/,/[^/s]/
1.2快捷方式可以当作字符类开使用,也可以在一个更大的字符类的列表([])中
/[/dA-Fa-f]/ 匹配16进制数字
/[/d/D]/ 匹配任意数字或者非数字,即任何字符
/[^/d/D]/ 什么都不匹配,没用的东西

三.优先级
1.最高优先级():组组或记忆
2.数量符
3.锚位符和序列
4.表示选择的坚线|,把模式pattern切成片

/fred|barney/ 匹配fred或者barney,而不是bredarney或brebarney
/^fred|barney$/ 匹配以fred开头或者以barney结尾的字符串
/^(fred|barney)$/ 匹配fred或者barney

四.应用正则表达式
1.search匹配查找
2.replace查找替换
3.split拆分
4.join合并
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: