正则表达式基础

linux shell 用一串字符作为表达式向内核传递意思, 正则表达式用元字符和普通字符组成的字符串来查询和操作字符串,其中元字符是描述字符的字符

                基本正则表达式元字符集合和意义

*         0个或者多个在*字符之前的那个普通字符

.          匹配任意字符

^         匹配行首,或后面字符的非

$         匹配行尾

[]         匹配字符集合

\          转义符,屏蔽一个元字符的特殊意义

\<\>     精确匹配符号

\{n\}    匹配前面字符出现n次

\{n,\}   匹配前面字符至少出现n次

\{n,m\} 匹配前面字符出现n~m次

 

*字符用于匹配前面一个普通字符的0次或多次重复

例如:hel*o  前面字符是l,*就匹配l出现0次或者多次的文件,比如 helo--没有出现,helllllll0--多次

. 符号比较好理解,匹配任意字符,空格也可以

^符号用于匹配行首,表示行首的字符是^字符后面的那个字符

例如,^hello,表示匹配以hello开始的一行

$字符匹配行尾,表示行尾的字符是$前面的字符

比如:hello$,匹配所有以hello结尾的行

匹配空行的表达式为 ^$

[] 符号--->>里面放入需要匹配的字符集合,可以加入- 

比如:[0-9]匹配0~9中任意一个数字[a-z]  [A-Z]

^符号如果放入[]内表示的是取反

例如:[^c-f] 表示的是:匹配c-f之外的字符.数字.和空格

[A-Za-z][a-zA-Z]*  表示匹配任意英文单词

\ 转义符号,用于屏蔽一个元字符的特殊意义,让它回归本来的意义

\<\> 符号是精确匹配符号

\<the\> 精确匹配 the 这个单词,而不匹配 them there  another 等等

\{n\}  系列符号和* 符号类似,都是表示前一个字符的重复,但是*表示0或者多次,而\{n\}系列可以指定重复次数

例如: feihu\{3\}a   ===>> 只能匹配到feihuuua

        feihu\{3,\}a  ===>> 可以匹配到feihuuua feihuuuua feihu..........a

        feihu\{3,8\}a ===>> 最少3次,最多8次, 少于或者大于都不满足

 

[a-z]\{5\} ==>> 精确匹配5个小写字母

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2014-04-24 16:14  飞花XX  阅读(155)  评论(0编辑  收藏  举报