您的位置:首页 > 运维架构 > Shell

Bash Shell-正则表达式与模式匹配

2016-05-09 18:26 429 查看
转载自:http://blog.chinaunix.net/uid-10386087-id-2958889.html

正则表达式元字符

元字符
功能
示例
匹配对象
^
行首定位符
/^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 <="" font="" style="word-wrap: break-word;">
匹配包含以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的行<% 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息