元字符的总结:
1.在字符匹配中有以下几个元字符
. 在模式匹配中表示匹配除 以外的任意单个字符(注意该元字符是一个点号);
[ ] 匹配指定集合中的任意单个字符
例 如 [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.位置锚定类别,有以下几个元字符:
^ 行首锚定(写在模式最左侧)
$ 行尾锚定(写在模式最右侧)
^$ 空白行
< 词首锚定或是
(出现在要查找的单词模式的左侧:<char)
> 词尾锚定
(出现在要查找的单词模式的左侧:char>)
< pattern> 匹配单词
5.分组:
()
后向引用:模式中,如果使用( )实现了分组,在某行文本中,如果( )的模式匹配到的某内容,此内容后面的模式中,可以被引用模式 1, 2 , 3…
1 表示引用第1个左括号
2 表示引用第2 个左括号
3 表示引用第3个左括号
…….
# 表示引用第#个左括号