正则表达式匹配

切从最基本的开始。模式,是正则表示式最基本的元素,它们时一组描述

字符串特征的字符。模式可以简单,由普通的字符串组成,也可以复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。

例如:

^love

这个模式包含一个特殊的字符^,表示该模式只匹配那些以love开头的字符串。例如该模式与字符串“lovewe”,与“I love you”不匹配。正如^符号表示开头一样,$符号表示用来匹配哪些以给定模式结尾的字符串。

man$

这个模式与“policeman”匹配,与policy不匹配。字符^和$同时使用时,表示精确匹配(字符串与模式一样)。例如:只匹配字符串“bash”。

^bash$

稍微复杂的字符,如标点符号和白字符(空格、制表符等),要用到转义符。所有的转义序列都用反斜杠(\)打头。制表符的转义序列是:\t。因此如果我们要检测一个字符串是否以制表符开头,可以用模式:

^\t

类似的,用“\n”表示“新行”,“\r”表示“回车”。其他特殊符号,可以用在前面加上反斜杠,如果反斜杠本身用\\表示,句号.用\.表示,以此类推。如图所示

字符簇

描述

[[:alnum:]]

字母与数字字符。例如:[[:alnum:]]+

[[:alpha:]]

字母字符(包括大小写字母)。例如:[[:alpha:]]{4}

[[:blank:]]

空格与制表符。例如:[[:blank:]]*

[[:digit:]]

数字字母。例如:[[:digit:]]?

[[:lower:]]

小写字母。例如:[[:lower:]]{5,}

[[:upper:]]

大写字母。例如:[[:upper:]]+

[[:punct:]]

标点符号。例如:[[:punct:]]

[[:space:]]

包括换行符,回车等在内的所有空白。例如:[[:space:]]+

但更多的情况下,可能要匹配一个单词或一组数字。一个单词有若干个字母组成,一组数字有若干个单数组成。跟在字符或字符簇后面的花括号({})用来确定前面的内容的重复出现的次数

posted @ 2019-08-19 09:03  莫孟林  阅读(221)  评论(0编辑  收藏  举报