1.简介
正则表达式(简称regex)是一些有字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则表达式能按照某种模式匹配一系列有相似特征的字符串。换句话说,它们能匹配多个字符串…一种只能匹配一个字符串的正则表达式模式是很乏味并且毫无作用的。
python通过标准库中的re模块来支持正则表达式。
2.常用的匹配元字符(特殊符号和字符)
表示择一匹配的管道符号(|),是的正则表达式能够匹配多个字符串而不仅仅是一个字符串。 at | home
点号(.)匹配除了换行符\n以外的任何单个字符 比如:f.o (匹配在字母f和o之间的任意一个字符:fao,f9o) ; .. (任意两个字符)
如果要匹配字符串的开始位置,就必须使用脱字符(^)或者特殊字符\A,后者主要用于那些没有脱字符的键盘。美元符号($)或者\Z将用于匹配字符串的末尾位置 比如:^From(任何以From作为其实的字符串); /bin/tcsh$(任何以/bin/tcsh作为结尾的字符串)
特殊字符\b和\B可以用来匹配字符边界。\b用于匹配一个单词的边界,这意味这如果一个模式必须位于单词的起始部分,就不管该单词前面是否有任何字符。同样,\B将匹配出现在一个单词中间的模式(即,不是单词边界) 比如:\bthe(任何以the开始的字符串) \bthe\b(仅仅匹配单词the) \Bthe(任何包含但并不以the作为其实的字符串)
-
[0-9a-zA-Z\_]
可以匹配一个数字、字母或者下划线; -
[0-9a-zA-Z\_]+
可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100'
,'0_Z'
,'Py3000'
等等; -
[a-zA-Z\_][0-9a-zA-Z\_]*
可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量; -
[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}
更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。