linux bash shell 正则表达式

Posted on 2013-08-06 11:21:00

linux bash shell 正则表达式

元字符 功能 示例 匹配对象
^ 行首定位符 /^man/ 匹配所有以man开头的行
$ 行尾定位符 /man$/ 匹配所有以man结尾的行
. 匹配单个字符 /m..n/ 匹配包含一个m,后跟两个字符,再跟一个n的行
* 匹配0个或多个重复的位于星号前的字符 /*man/ 匹配包含跟在0个或者多个空格的模式的man的行
[] 匹配一组字符中任一个 /[Mm]an/ 匹配包含Man或man的行
[x-y] 匹配指定范围内的一个字符 /[A-Z]an/ 匹配后面跟着an的一个A至Z之间的字符
[^] 匹配不在指定组内的字符 /[^A-Z]/ 匹配不在范围A至Z之间的任意一个字符
\ 用来转义元字符 /man./ 匹配包含man,后面跟一个点(如果不转义的话则是匹配一个任意字符)
\< 词首定位符 /\<man/ 匹配包含以man开头的词的行(vi和grep支持)
> 词首定位符 /man>/ 匹配包含以man结尾的词的行(vi和grep支持)
(..) 匹配稍后将要使用的字符的标签 s/(man)
acle/\1age/g 最多可以使用9个标签,模式中最左边的标签是第一个。例如,模式man被保存为标签1,用\1表示。左边这个例子中,查找manacle,把它替换成manage(sed、vi和grep支持)

| x{m}或 x{m,}或 x{m,n} | 字符x的重复出现:m次、至少m次、至少m次且不超过n次 | n{3,5} | 匹配包含3~5个连续的字母n的行<%  |