4.6. 字符介绍——通配符
4.6 字符介绍——通配符
通配符元字符或点 (.) 可以被认为等同于一个变量。在算数表达式里面,一个变量代表任意值。在正则表达式里面一个点(.)是一个代表除了换行符外的任一字符的通配符。(在 awk 里面点甚至可以匹配一个嵌套的换行符。)
考虑到我们正在描述一个字符序列通配符,通配符元字符允许你指定任意字符可以填充的位置。
比如如果我们在搜索一个包含关于 intel 系列处理器的讨论的文件。下面的正则表达式
80.86
匹配包含引用“80286”、“80386”或“80486”的行 [^1]。
1: 奔腾系列微处理器破坏了我们简单的模式匹配实验,破坏了乐趣。更别提最初的8086了
要匹配一个小数点或一个英文句号,你必须用反斜杠来转义点(.)。
在模式的开头或结尾匹配任意字符是很少有用的。因此,通配符字符通常前后都跟有正面量字符或其它元字符。比如下面的正则表达式可能被写来用于搜索 chapter 的引用:
Chapter.
它搜索跟着任意字符的 chapter 这个字符串。这个表达式搜索出来的结果和固定字符串模式 “chapter” 是一样的。看下面的例子。
$ grep ’Chapter.’ sample
you will find several examples in Chapter 9.
"Quote me ’Chapter and Verse’," she said.
Chapter Ten
如果搜索字符串 “Chapter” 而不是 “Chapter.” 点将会匹配所有同样的行。然而有一个情况是不一样的,如果 “Chapter” 在一行的末尾出现。通配符不会匹配换行符,所以 “Chapter.” 点将不会匹配那一行,而固定字符串模式将匹配那一行。