全部博文(26)
分类: LINUX
2014-02-05 12:12:03
摘自:[美]Harley Hahn:Unix & Linux大学教程
十五、正则表达式
(1)简介
正则式用来指定字符串的模式。
元字符 含义
. 除新行字符外,匹配任意的单个字符
^ 锚:匹配行的开头
$ 锚:匹配行的结尾
\< 锚:匹配单词的开头
\> 锚:匹配单词的结尾
[list ] 字符类:匹配list中的任何字符
[^list] 字符类:匹配不在list中的任何字符
() 组:视为一个单独的单元
| 交变:匹配选项之一
\ 引用:从字面意思解释元字符
正则表达式:基本匹配
(2)正则表达式:重复运算符
运算符 含义
* 匹配0次或多次
+ 匹配1次或多次
? 匹配0次或1次
{n} 限定:匹配n次
{n,} 限定:最少匹配n次
{0,m} 限定:最多匹配m次
{,m} 限定:最多匹配m次
{n,m} 最少匹配n次,最多匹配m次
(3)正则表达式:预定义字符类
类 含义 类似于(c排序序列)
[:lower] 小写字母 a-z
[:upper:] 大写字母 A-Z
[:alpha:] 大小定字母 A-Za-z
[:alnum:] 大小定字母和数字 A-Za-z0-9
[:digit:] 数字 0-9
[:punct:] 标点符号
[:blank:] 空格或制表符
(4)基本和扩展正则表达式(BRE和ERE)
扩展正则表达式 基本正则表达式 含义
{} \{\} 定义一个限定(花括号)
() \(\) 定义一个组(圆括号)
? \{0,1\} 匹配0次或1次
+ \{1,\} 匹配1次或多次
| 无 交变:匹配选项之一
[:name] 无 预定义字符类
(5)预定义字符类:范围
理解复杂正则表达式的技巧就是记住每个字符类——不管它看上去多么复杂——只表示一个单独的字符。