正则表达式——基于Python开发环境

       python通过re模块进行正则表达式功能的字符串匹配,re模块不需要安装,属于内置模块,通过import进行导入即可,下面介绍该模块相应的函数(或者说,方法)。

findall

       作用:在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表。

       语法:

re.findall('正则表达式','待匹配字符串')

       示例:

result = re.findall('abc','rgwegrcewf') # 此时,result为返回值列表

注意:‘\‘在Python也表示转义的意思,因此,如果在正则表达式使用到’\’,则必须使用两个,即‘\\d’表示匹配数字,当然,为了避免这种麻烦,可以在正则表达式的引号前加r,比如re.findall(r'\d','vfds516')

finditer

       作用:在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。(通过循环以及group方法即可提取数据)

       语法:

re.finditer('正则表达式','待匹配字符串')

search

       作用:只匹配第一次匹配到的内容并将其返回(match对象)。

       语法:

re.search('正则表达式','待匹配字符串')

match

       作用:对字符串起始位置进行匹配,若匹配成功则返回match对象,否则返回none。

       语法:

re.search('正则表达式','待匹配字符串')

compile

       作用:将正则表达式预加载(可以当成赋给)相应的变量,之后可以通过该变量进行字符串匹配,防止多次进行匹配导致内存损耗过多。

       语法:

变量名 = re.compile('正则表达式')
# 这之后进行字符串提取,可以通过以下方式:
变量名.findall('待匹配字符串')

       示例:

obj = re.compile('abc')
result = obj.findall('rgwegrcewf') # 此时,result为返回值列表

示例

       当需要提取的数据有多种,比如提取字符串中包含人名、出生日期、电话时,可用()括起来并在前面加上?P<组名>以将不同的信息分配给不同组:

import re

# 待匹配字符串str
str = """
<div class='张三'><id='19250602'>连通大厦<div>
<div class='李氏'><id='20230301'>得榜公园<div>
"""

# 正则表达式reg
reg = re.compile(r"<div class='(?P<name>.*?)'><id='(?P<bir>\d+)'(?P<adr>.*?)>")

# 查找匹配的字符并将其形成迭代器返回
result = reg.finditer(str)

# 取出字符串并打印
for item in result:
    print(item.group("name"))
    print(item.group("bir"))

       结果为:

张三
19250602
李氏
20230301
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值