前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 2.7正则上篇

python 2.7正则上篇

作者头像
信安之路
发布2018-08-08 10:48:26
7070
发布2018-08-08 10:48:26
举报
文章被收录于专栏:信安之路信安之路

re模块详解

re模块所包含的所有函数如下图:

compile

功能介绍

根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。可以提高正则的匹配速度,重复利用正则表达式对象。

用法介绍

函数原型:re.compile(pattern[, flag])

参数解释:pattern为要编译的正则表达式,flag为前文图中的标志位。

flag不同值对应的解释如下图:

例子

匹配字符串Myh0St所有字符,不忽略大小写与忽略大小写的区别

后面的例子我们将都是用这个函数来编译正则,所以后面的函数原型都是基于这个来展示。

match

功能介绍

用于查找字符串的头部(也可以指定起始位置),它是一次匹配,只要找到了一个匹配的结果就返回,而不是查找所有匹配的结果。

用法介绍

函数原型:match(string[, pos[, endpos]])

参数解释:string为匹配用的原始字符串,pos为文本中正则表达式开始搜索的索引,endpos文本中正则表达式结束搜索的索引

使用match函数成功后会返回一个对象,该对象包含一下功能:

group([group1, …]) 方法用于获得一个或多个分组匹配的字符串,当要获得整个匹配的子串时,可直接使用 group() 或 group(0);

start([group]) 方法用于获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符的索引),参数默认值为 0;

end([group]) 方法用于获取分组匹配的子串在整个字符串中的结束位置(子串最后一个字符的索引+1),参数默认值为 0;

span([group]) 方法返回 (start(group), end(group))。

例子

匹配myh0st中的字符以及从索引3和4开始匹配

search

功能介绍

用于查找字符串的任何位置,它也是一次匹配,只要找到了一个匹配的结果就返回,而不是查找所有匹配的结果。

用法介绍

函数原型:search(string[, pos[, endpos]])

参数解释:string为匹配用的原始字符串,pos为文本中正则表达式开始搜索的索引,endpos文本中正则表达式结束搜索的索引

如果匹配成功返回一个match对象,如果不成功则返回None

例子

搜索myh0st1中的数字

findall

功能介绍

上面的 match 和 search 方法都是一次匹配,只要找到了一个匹配的结果就返回。然而,在大多数时候,我们需要搜索整个字符串,获得所有匹配的结果。

用法介绍

函数原型:findall(string[, pos[, endpos]])

参数解释:string为匹配用的原始字符串,pos为文本中正则表达式开始搜索的索引,endpos文本中正则表达式结束搜索的索引

findall 以列表形式返回全部能匹配的子串,如果没有匹配,则返回一个空列表。

例子

搜索myh0st234myh0st中的所有数字

finditer

功能介绍

finditer 方法的行为跟 findall 的行为类似,也是搜索整个字符串,获得所有匹配的结果。但它返回的是一个match的对象。

用法介绍

函数原型:finditer(string[, pos[, endpos]])

参数解释:string为匹配用的原始字符串,pos为文本中正则表达式开始搜索的索引,endpos文本中正则表达式结束搜索的索引

finditer返回一个顺序访问每一个匹配结果(Match 对象)的迭代器。

例子

搜索myh0st234myh0st中的所有数字

split

功能介绍

split 方法按照能够匹配的子串将字符串分割后返回列表

用法介绍

函数原型:split(string[, maxsplit])

参数解释:string为匹配用的原始字符串,maxsplit 用于指定最大分割次数,不指定将全部分割。

split 以列表形式返回全部能匹配的子串,如果没有匹配,则返回一个空列表。

例子

以数字串分割myh0st234myh0st

sub

功能介绍

sub 方法用于使用正则替换字符串中符合条件的字符。

用法介绍

函数原型:sub(repl, string[, count])

参数解释:repl可以是字符串也可以是函数,string为匹配用的原始字符串, count 用于指定最多替换次数,不指定时全部替换。

如果 repl 是字符串,则会使用 repl 去替换字符串每一个匹配的子串,并返回替换后的字符串,另外,repl 还可以使用 id 的形式来引用分组,但不能使用编号 0;

如果 repl 是函数,这个方法应当只接受一个参数(Match 对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组)。

sub函数返回替换后的字符串。

例子

用mm替换myh0st234myh0st中的数字串或者用test函数替换

subn

功能介绍

subn 方法跟 sub 方法的行为类似,也用于替换。

用法介绍

函数原型:subn(repl, string[, count])

参数与sub的参数一致

subn返回一个元组,第一个元素是使用sub方法的结果,一个是替换的次数

例子

用mm替换myh0st234myh0st中的数字串或者用test函数替换

在不使用compile的时候,只需要将函数前面加re.以及第一个参数为正则表达式即可,例如:re.search("\d", "myh0st")

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • re模块详解
    • compile
      • 功能介绍
      • 用法介绍
      • 例子
    • match
      • 功能介绍
      • 用法介绍
      • 例子
    • search
      • 功能介绍
      • 用法介绍
      • 例子
    • findall
      • 功能介绍
      • 用法介绍
      • 例子
    • finditer
      • 功能介绍
      • 用法介绍
      • 例子
    • split
      • 功能介绍
      • 用法介绍
      • 例子
    • sub
      • 功能介绍
      • 用法介绍
      • 例子
    • subn
      • 功能介绍
      • 用法介绍
      • 例子
    • 在不使用compile的时候,只需要将函数前面加re.以及第一个参数为正则表达式即可,例如:re.search("\d", "myh0st")
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档