专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>shell基础篇>

正则表达式例子

百度收藏 QQ搜藏

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

上一篇:关于正则表达式的"贪婪"性 下一篇:学习grep(参数)选项

power by soyo123 2007-2008