4.10. 字符介绍——字符类——排除一类字符
4.10 字符介绍 —— 字符类 —— 排除一类字符#
通常字符类包括你想在那个位置匹配的所有字符。变音符 (^) 作为在类中的第一个字符,排除了类中被匹配的所有字符。任何不在方括号 []
里面列出来的字符除了换行符 [^1] 都将被匹配。
1: awk 中,换行符也会被匹配。
下面的模式将匹配任何不是数字的字符:
[^0-9]
它匹配所有大小写的字母表字母,所有特殊字符,比如标点符号。
排除特定的字符,有时比明确列出所有你想要匹配的字符更方便。比如如果你想匹配任何辅音,你可以简单地排除元音:
[^aeiou]
这个表达式将匹配任何辅音、任何大写的元音、任何标点符号或特殊字符。看下面的正则表达式:
\.DS "[^1]"
这个表达式匹配了字符串 ”.DS“跟着一个空格,然后是括号,再跟一个除了数字 1 的任意字符,再跟一个括号 [^2]。
2: 当把这个模式在命令行上输入的时候,需要将它用单引号来括起来。变音符 (^) 对原来的 Bourne shell 是特殊的。
它设计为避免匹配下面这一行:
.DS "1"
将匹配下面这些行:
.DS "I"
.DS "2"
这个语法也可以用来限定一个匹配的范围,就像我们将看到的那样。