正则表达式
REGular EXPression   的简写
元字符
匹配次数
位置锚定
分组
--------------------------------------
元字符
. 匹配任意单个字符
[] 匹配指定范围内任意单个字符
[^] 匹配指定范围外的
	[:space:] 空白字符
	[:punct:]  标点字符
	[:lower:]  小写字母
	[:upper:]  大写字母
	[:alpha:]  大小写字母
	[:digit:]  数字
	[:alnum:]  数字和大小写字母
匹配次数(贪婪模式)
* 匹配其前面的字符任意次
	a*b   b前面a出现任意次数
	a.*b  a开头b结束
.*  任意长度任意字符
\? 匹配其前面的字符1次或0次    意思是这个字符可有可无
	a?b
\{m,n\} 匹配其前面的字符至少m次 至多n次
	\{1,\}  至少一次
	\{,3\}  至多3次    
	a.\{1,3\}b  a和b之间至少有一个最多有三个字符
位置锚定:
^ 锚定行首 此字符后面的任意内容必须出现在行首
$ 锚定行尾   此字符前面的任意内容必须出现在行尾
	grep ‘b..h$‘ /etc/passwd
	^$  空白行
\< 其后面的任意字符必须作为单词首部出现
\> 其前面的任意字符必须作为单词尾部出现    \b这个符号的另一种写法
分组
\(\)
	\(ab\)*   ab 可以出现任意次
	\1  第一个左括号以及与之对应的组内容
grep ‘\(l..e\).*\1‘ test3.txt
练习: 分析/etc/inittab 文件中如下文本中前两行的特征(每一行中出现在数字必须相同)请写出可以精确找到类似两行的模式
11:1:wait:/etc/rc.d/rc 1
13:1:wait:/etc/rc.d/rc 3
grep ‘^1\([0-9]\):\1.*\1$‘ /etc/inittab
grep 使用基本正则表达式定义的模式来过滤文本的命令
----------------------------------------------------
扩展正则表达式
字符匹配
. [] [^]
次数匹配
*
?  无需反斜杠了
+   匹配其前面的字符至少一次  \{1,\}
{m,n} 不需要反斜线
位置锚定  
^
$
\<
\>
分组
()  不用反斜杠
\1,\2
或者
a|b  or的意思
	C|cat   整个左边和右边
	Cat或者cat  错
	C或者cat    对
grep -E ‘C|cat‘ text.txx
{3}重复三次
fgrep 不支持正则表达式 特别快
原文:http://www.cnblogs.com/manue1/p/4477178.html