python中的正则表达式re模块

编程入门 行业动态 更新时间:2024-10-28 01:21:49

python中的正则表达式re<a href=https://www.elefans.com/category/jswz/34/1771428.html style=模块"/>

python中的正则表达式re模块

元字符之分组 ()

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import re

print(re.findall(r"(abc)+",'abcccccabccc'))

#注释:分组是把括号内的字符串看成一个整体来做正则匹配

以上实例执行结果:

['abc', 'abc']

import re

ret=re.search('(?P\d{2})\.(?P\w{3})','23')

print(ret.group())

print(ret.group('id'))

#注释:使用分组的来获取自己想要的组,以上分文两个组(id组和name组),实际正真在匹配的是\d{2}和\w{3}

#注释:(?P<>) 是分组的固定格式,里面的ID为自定义名字

以上实例执行结果:

23

23

re模块常用方法 search

#类似于find方法,当第一次匹配到以后就不会继续往后找直接返回结果,如果找不到返回None。

以下实例是使用search方法匹配数字;返回的结果一个match对象

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import re

ret=re.search('\d+','sdf23sdf35sdfs36')

print(ret)

以上实例执行结果:

获取match对象的值,使用group方法

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import re

ret=re.search('\d+','sdf23sdf35sdfs36').group()

print(ret)

以上实例执行结果

23

re.match方法与search大致相同,不过match在字符串开始处进行匹配;

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import re

ret=re.search('\d+','56sdf23sdf35sdfs36').group()

print(ret)

以上实例执行结果

56

split()方法切分字符串

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import re

ret=re.split('sd','56sdf23sdf35sdfs36')

print(ret)

以上实例执行结果

['56', 'f23', 'f35', 'fs36']

sub()方法与字符串中的replace()方法一样;查找替换

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import re

ret=re.sub('\d','abc','alvin5yuan6')

print(ret)

#注释:将数字替换为abc

> 执行结果 alvinabcyuanabc

ret=re.subn('\d','abc','alvin5yuan6')

print(ret)

#注释:将数字替换为abc,但是会显示有几处被替换

> 执行结果 ('alvinabcyuanabc', 2)

compile()方法将正则表达式编译成对象;可以多次重复使用,速度效率更高更快。

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import re

com=repile('\d+') #将正则表达式编译成对象,多次重复使用的时候效率会提高;

res=com.findall('sdjfkl2456sdfds456sdfds456') #任意方法都可以用findall、search等;

print(res)

finditer()方法将查询后的结果返回一个迭代器

import re

ret=re.finditer('\d','ds3sy4784a')

print(ret) #

print(next(ret).group())

print(next(ret).group())

注意:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import re

res=re.findall('www\.(?:baidu|google)\',"www.baidu")

print(res)

#注释:不捕获分组,findall方法是分组下只返回分组部分,如果想完整显示使用 ?:

#拓展:不捕获分组

匹配括号中的任何正则表达式,但是匹配的子字符串不能在匹配后提取或在模式中引用。

(a.b)xy\1: 能匹配到a6bxya6b, 不能匹配到a6bxya7b (a.b)在前面匹配到的内容在后面也要一样 这就叫引用

引用:

\1: 后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式所匹配到的内容

\2

以上实例执行结果:

www.baidu

更多推荐

python中的正则表达式re模块

本文发布于:2024-03-10 03:38:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1726911.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模块   正则表达式   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!