正则表达式介绍
使用s h e l l时,从一个文件中抽取多于一个字符串将会很麻烦。例如,在一个文本中抽取一个词,它的头两个字符是大写的,后面紧跟四个数字。如果不使用某种正则表达式,在s h e l l中将不能实现这个操作。
正则表达式是一种可以用于模式匹配和替换的强大工具,我们可以在很多unix程序中找到正则表达式的身影,例如vi,perl,php,awk,sed,emacs,grep等。
正则表达式常见的应用场合:
1.验证用户输入是否合法,如验证“xxx@xxx.xxx”的规则,其中x字符是字母,数字,下划线,小数点或减号,邮件地址的每一部分可以有一个或多个字符。
2.验证IP地址是否符合“yyy.yyy.yyy.yyy”的规则,且每个地址段小于255
3.……
基本元字符集及其含义
^
只匹配行首
$
只匹配行尾
*
一个单字符后紧跟*,匹配0个或多个此单字符
[]
匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用-表示[ ]内字符序列范围,如用[ 1 – 5 ]代替[ 1 2 3 4 5 ]
\
只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有特殊含义。\可以使其失去应有意义
.
只匹配任意单字符
p a t t e r n \ { n \ }
只用来匹配前面p a t t e r n出现次数。n为次数
p a t t e r n