元字符的总结:
1.在字符匹配中有以下几个元字符
. 在模式匹配中表示匹配除 \n 以外的任意单个字符(注意该元字符是一个点号);
[ ] 匹配指定集合中的任意单个字符
例 如 [abcde] 匹配 abcde 之中的任意一个字符
[^ ] 匹配指定集合外的任意单个字符
例 如 [^fgh] 匹配任意一个不包括fgh的字符
2.匹配次数类别中有以下几个元字符
* 匹配其前面任意次(0次或1次或多次),记住,在这里要特别跟通配符作下比较(在通配符里 * 表示匹配任意长度的字符)
例如:grep 'x*y'
xy, xxy, xxxy, y
\? 匹配其前面的字符0次或是1次
例如:grep 'x\?y'
xy, aby
\+ 匹配其前面的字符至少1次
\{m\} 匹配其前面的字符m次
例如:grep 'x\{2\}y'
Xxy
\{m,n\} 匹配其前面的字符至少m次,之多m次
\{m,\} 匹配其前面的字符至少m次,没有上限
\{0,m\} 匹配其前面的字符字符之多m次
3.组合类别,有以下几个元字符:
.* 匹配任意长度的任意字符
4.位置锚定类别,有以下几个元字符:
^ 行首锚定(写在模式最左侧)
$ 行尾锚定(写在模式最右侧)
^$ 空白行
\< 词首锚定或是 \b
(出现在要查找的单词模式的左侧:\<char)
\> 词尾锚定
(出现在要查找的单词模式的左侧:char\>)
\< pattern\> 匹配单词
5.分组:
\(\)
后向引用:模式中,如果使用\( \)实现了分组,在某行文本中,如果\( \)的模式匹配到的某内容,此内容后面的模式中,可以被引用模式 \1, \2 , \3…\n
\1 表示引用第1个左括号
\2 表示引用第2 个左括号
\3 表示引用第3个左括号
…….
\# 表示引用第#个左括号