如果没有用武之地,知道如何书写正则表达式也没多大意义。模块re包含多个使用正则表达 式的函数,表10-9描述了其中重要的一些。
表10-9 模块 re中一些重要的函数
函 数 描 述
compile(pattern[, flags]) 根据包含正则表达式的字符串创建模式对象
search(pattern, string[, flags]) 在字符串中查找模式
match(pattern, string[, flags]) 在字符串开头匹配模式
split(pattern, string[, maxsplit=0]) 根据模式来分割字符串
findall(pattern, string) 返回一个列表,其中包含字符串中所有与模式匹配的子串
sub(pat, repl, string[, count=0]) 将字符串中与模式pat匹配的子串都替换为
repl escape(string) 对字符串中所有的正则表达式特殊字符都进行转义
函数re.compile将用字符串表示的正则表达式转换为模式对象,以提高匹配效率。调用 search、match等函数时,如果提供的是用字符串表示的正则表达式,都必须在内部将它们转换 为模式对象。通过使用函数compile对正则表达式进行转换后,每次使用它时都无需再进行转换。 模式对象也有搜索/匹配方法,因此re.search(pat, string)(其中pat是一个使用字符串表示的正 则表达式)等价于pat.search(string)(其中pat是使用compile创建的模式对象)。编译后的正则 表达式对象也可用于模块re中的普通函数中。 函数re.search在给定字符串中查找第一个与指定正则表达式匹配的子串。如果找到这样的 子串,将返回MatchObject(结果为真),否则返回None(结果为假)。鉴于返回值的这种特征,可 在条件语句中使用这个函数,如下所示: if re.search(pat, string): print('Found it!') 然而,如果你需要获悉有关匹配的子串的详细信息,可查看返回的MatchObject。
注意 函数match在模式与字符串开头匹配时就返回True,而不要求模式与整个字符串匹配。如 果要求与整个字符串匹配,需要在模式末尾加上一个美元符号。美元符号要求与字符串 末尾匹配,从而将匹配检查延伸到整个字符串。








暂无数据