1、使用句点匹配单字符
例一:beng.n: 以beg开头,中间夹一个任意字符。 例二:....X C....:共10个字符,前四个之后为XC 例三:列出所有用户都有写权限的目录或文件 : ls -l |grep ...x..x..x
2、行首以^匹配字符串或字符序列 ^ 只允许在一行的开始匹配字符或单词。
例如,使用ls -l命令,并匹配目录。 $ ls -l | grep ^d
3、在行尾以$匹配字符串或字符 可以说$与^正相反,它在行尾匹配字符串或字符, $符号放在匹配单词后。
例一:列出文件httpd1.conf中所有以单词common结尾的行
$grep common$ httpd1.conf 或者 $cat httpd1.conf | grep common$
例二:匹配所有空行:^ $
例三:只返回包含一个字符的行:^.$
4、用\屏蔽一个特殊字符的含义
下列字符一般可以认为是特殊字符: $ . ' " * [] ^ | () \ + ?
例如: \ . 反斜杠后面的字符不再是特殊字符,而是一个普通字符,即句点。
假定要匹配包含^的各行,将反斜杠放在它前面就可以屏蔽其特殊含义: \ ^
在正则表达式中匹配以*.pas结尾的所有文件: \*\.pas 即可屏蔽字符*的特定含义。
5、使用\{\}匹配模式结果出现的次数 使用*可匹配所有匹配结果任意次,但如果只要指定次数,就应使用\{\},
此模式有三种形式,即: pattern\{n\} 匹配模式出现n次。 pattern\{n,\} 匹配模式出现最少n次。 pattern\{n,m} 匹配模式出现n到m次之间,n , m为0 - 2 5 5中任意整数。
例一:匹配字母A出现两次,并以B结尾: A\{2\}B 匹配值为AAB
例二:匹配A至少4次: A\{4,\}B 可以得结果AAAAB或AAAAAAAB,但不能为AAAB。
例三:如给出出现次数范围,例如A出现2次到4次之间: A\{2,4\}B 则结果为AAB、AAAB、AAAAB,而不是AB或AAAAAB等。
例四:假定从下述列表中抽取代码: 1234XC9088 4523XX9001 0011XA9912 9931Xc3445 格式如下:前4个字符是数字,接下来是x x,最后4个也是数字,操作如下: [0 -9]\{4\}XX[0-9]\{4\}
具体含义如下: 1) 匹配数字出现4次。 2) 后跟代码x x。 3) 最后是数字出现4次。
其结果如下: 1234XC9088 -no match 4523XX9001 -match 0011XA9912 -no match 9931Xc3445 -no match |