正则表达式

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

”|“符号也表示多个正则表达式。

 

你可能感兴趣的:(正则表达式)