码迷,mamicode.com
首页 > 编程语言 > 详细

python:re模块

时间:2018-01-18 23:02:30      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:post   str   ali   lib   sys   爬取   替换字符串   col   apple   

主要是学习re模块的使用,正则表达式的学习...我都看了,就是运用少,所以没记住什么,用到的时候,还得翻我手工记录的正则笔记.....如果是爬取网页,可以用bs4模块,这个更方便,只是正则很强大(~ ̄▽ ̄)

看的下面这个文章做得笔记

https://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247483970&idx=1&sn=ee3c82889fcec5779a0f6441f0a2f70a&chksm=ec1e326adb69bb7ccd9a972f50456bd7bc79f68123c165f1c9e7c84a0a425cfdbf5d021d28d2&mpshare=1&scene=23&srcid=1223rwdT94LSYY9f2y7apOb7#rd

re.compile(pattern[, flag])

功能:生成一个正则表达式对象

pattern为要编译的正则表达式,flag为图中的标志位

 技术分享图片

 

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))。

>>> str = "qwe123asd"

>>> import re

>>> pattern = re.compile([a-z]+)

>>> obj = pattern.match(str)

 

search(string[, pos[, endpos]])

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

findall(string[, pos[, endpos]])

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

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

finditer(string[, pos[, endpos]])

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

split(string[, maxsplit])

maxsplit 用于指定最大分割次数,不指定将全部分割。(python有个内置方法也是split)

 

sub(repl, string[, count])

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

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

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

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

主要是repl为函数需要注意

 技术分享图片

 

subn(repl, string[, count])

参数与sub的参数一致

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

 

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

 

python:re模块

标签:post   str   ali   lib   sys   爬取   替换字符串   col   apple   

原文地址:https://www.cnblogs.com/GH-D/p/8313282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!