POSIX标准将正则表达式分为俩类,基本正则表达式和扩展正则表达式
1,“*”符号
“*”符号用于匹配前面一个普通字符的0次或多次重复出现,例如:
hel*o
可匹配helo,hello,helllo,hellllo
2,“.”符号
点号”.“用于匹配任意一个字符,例如:
73.
可匹配731,73a,73w等任意,
3,”^“符合
”^“符合用于匹配行首,表示行首的字符是”^“字符后面的那个字符,例如:
^cloud
可匹配cloud开头的行
结合上面的”*“和“.”符合,
^...X86*
表示该字符串首行的三个字符为任意字符(可以是空格),第4-6个字符为x86,第七个字符开始可以重复匹配6,如:
866X866666666,abcX86666
4,”$“符合
$符合匹配行尾,$符合放在匹配字符之后,与"^"符合的功能和用法相反,如:
micky$
该正则表达式可以匹配以micky结尾的所有行,一个特殊的正则表达式是匹配所有的空格
^$
该表达式即匹配行首,也匹配行尾,中级没有任何字符,因此,为空行。
^.$
匹配包含一个字符的行
5,[]符合
方括号[]匹配字符集合,该方法支持穷举方法列出字符集合的所有元素,也支持使用"_"符合表示符合集合的范围。表明符合集合范围从"_"做梦字符开始到"_"右边字符结束。
匹配任意一个数字
[1234567890]或
[0-9]
"[]"也可以做字母匹配
[a-z] #所有小写字母
[A-Z] #所有大写字母
[b-p] #小写字母b到p
注意:linux系统对大小写是敏感的,并且支持字母排序。
我们知道,”^“符合表示匹配行首,但是,”^“符合防止在"[]"符合中就不再表示匹配首行了,而是表示取反的意思。
[^b-d]
匹配不在b-d范围的所有字符。
[a-zA-Z]或[A-Za-z]
表示匹配所有英文字母
6,”\“符合
”\“符合是转义符,用于屏蔽一个元字符的特殊意义。
\.
经过转义后,"."不在表示任意一个字符,而是一个普通的字符句话.
7,”\<\>“符合
\<the\>
精确匹配the这个单词,而不匹配包含the字符的单词。
8,”\{\}“系列字符
"\{\}"系列符合于"*"符合类似,都是表示前一个字符的重复,但是,”*“表示重复0次或任意次,而"\{\}"可以指定重复的次数。
\{n\} 匹配前面字符出现n次
\{n,\} 匹配前面字符至少出现n次
\{n,m\} 匹配前面字符出现n到m次
JO\{3\}B #重复字符O三次
JO\{3,\}B #重负字符O至少3次
JO\{3,5\}B #重复字符O3到5次
在来一个例子:
[a-z] \{5\}
#精确匹配5个消息字母
二,扩展的正则表达式
1,”?“符合
匹配"?"符合之前的那个字符0次或1次,如:
JO?B
匹配JOB或JOOB
2,”+“符合
与”*“符合类似,都是匹配前面的那个字符多次,但是”*“符合可以匹配0次,而”+“符合至少匹配一次。
3,”()“符合和”|“符合
”()“符号通常与”|“符号结合使用,表示一个可选的符号的集合。
re(a|e|b)d
该表达式表示在a,e,b中选择任意一个字符。即read,reed,rebd
”|“符号也表示多个正则表达式。