Python3正则表达式——小白初学!最完整的教程没有之一( 二 )
1.1match( )re.match(pattern,string[,flags])
从首字母开始开始匹配 , string如果包含pattern子串 , 则匹配成功 , 返回Match对象;失败则返回None
代码如下(示例):
import reprint(re.match(r'How','How are you'))1
运行结果
1.2search( )re.search(pattern,string[,flags])将字符串的所有子串尝试与正则表达式匹配 , 如果所有的字串都没有匹配成功 , 返回none , 否则返回Match对象 。 注意:多个子串 , 只返回第一个
代码如下(示例):
s1='ahello's2='bahello world hello'print(re.match(s1,s2))print(re.search(s1,s2))123
运行结果None1
1.3 findall( )re.findall(pattern,string[,flags])列表的形式返回所有能匹配的子串 , 如果没有找到匹配的 , 则返回空列表 。
代码如下(示例):
s3=r'abc'print(re.findall(s3,'aabaab'))print(re.findall(s3,'aabcaabc'))12
运行结果[]['abc', 'abc']1
1.4 finditer( )re.finditer(pattern, string[, flags])返回string中所有与pattern相匹配的全部字串 , 返回形式为Match对象的迭代器 。
1.5小结1.我们会发现对于findall()函数返回的是一个列表 , 而match()和search()函数 , 直接打印输出的结果很多 。 因此匹配对象的方法只适用于match , search , findier , 而不适合findall 。 2.例如
1.6目标串返回在正则表达式中使用()用来分组 。 group()用来提出分组截获的字符串 。
group() 同group(0)就是匹配正则表达式整体结果;group(1) 返回第1个括号匹配部分;group(2) 列出第2个括号匹配部分;group(3) 列出第3个括号匹配部分;…
代码如下(示例):
a="123abc456"print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group())print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0))print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1))print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2))print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3))12345
运行结果123abc456123abc456123abc4561234
2.字符串替换——re.subre.sub(pattern, repl, string[, count])使用repl替换string中每一个匹配的子串后返回替换后的字符串 。 当repl是一个字符串时 , 可以使用\id或\g、\g引用分组 , 但不能使用编号0;当repl是一个方法时 , 这个方法应当只接受一个参数(Match对象) , 并返回一个字符串用于替换(返回的字符串中不能再引用分组) 。 count用于指定最多替换次数 , 默认全部替换 。
代码如下(示例):
s1="she is a girl. she likes apples"result = re.sub('she','he',s1,1)print(result)12
运行结果he is a girl. she likes apples
3.字符串拆分——re.split()re.split(pattern,string,maxsplit)【Python3正则表达式——小白初学!最完整的教程没有之一】maxsplit指定最大分割次数 , 不指定将全部分割 。 返回根据匹配到的子串将字符串分割成列表
代码如下(示例):
result = re.split('\d+','a111b222c33')print (result)1
db = '2020-10-121 23:23:23'result = re.split("\W+",db)print (result)12
运行结果['a', 'b', 'c', '']
['2020', '10', '121', '23', '23', '23']
正则表达式对象1.compile()函数compile(pattern,[,flags]compile()函数 编译正则表达式(以字符串书写的)pattern , 转换为模式对象然后返回一个正则表达式对象 。 不同于re.method()这种模式 , 使用预编译的代码对象比直接使用字符串要快 , 因为解释器在执行字符串形式的代码前都必须把字符串编译成代码对象 。
用正则表达式对象获取匹配子串
2.字符串匹配Pattern.match(string[, pos[, endpos]])Pattern.search(string[, pos[, endpos]])Pattern.findall(string[, pos[, endpos]])
- 「亲测」Thinkphp5 正则验证匹配出所有图片路径
- Python3.9来了,这些新特性你关注了吗?
- 三十一、深入Python中的正则表达式
- Python用正则表达式筛选出完整的组合密码原来如此简单
- 正则表达式性能优化的探究
- 新方向、新功能:Python3.9 完整版面世了
- Python爬虫入门基础及正则表达式抓取博客案例分享
- Python3登陆土巴兔装修网,解决RSA加密
- 号称“天书”的正则表达式,要这么来讲,我小学三年级已经满分了
- Python3实现向指定邮箱发送邮件!听说这波操作能赚三万?