ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【re模块】

2022-05-17 23:02:15  阅读:150  来源: 互联网

标签:search group 模块 re 电话号码 print findall


# -*- coding:utf-8 -*-
# @Time : 2022/5/17 22:22
# Author:hanyr
# Filename:re模块.py
import re

# findall匹配字符串中所有符合正则的内容
lst = re.findall(r"\d+", "我的电话号码是:10086,我女朋友的电话号码是:10010")
print(lst)

# finditer 匹配字符串中所有的内容【返回的是迭代器】,从迭代器中拿到内容要group()
it = re.finditer(r"\d+", "我的电话号码是:10086,我女朋友的电话号码是:10010")
for i in it:
    print(i.group())

# search 找到一个结果就返回,返回的结果是match对象,拿数据用.group()
s = re.search(r"\d+", "我的电话号码是:10086,我女朋友的电话号码是:10010")
print(s.group())

# match 是从头开始 匹配
m = re.match(r"\d+", "10086,我女朋友的电话号码是:10010")
print(m.group())

# compile 预加载正则表达式
obj = re.compile(r"\d+")
rets = obj.finditer("10086,我女朋友的电话号码是:10010")
for i in rets:
    print(i.group())
1、findall查找所有,返回list
list = re.findall("m","mai le fo len,mai ni mei!")
print(list) #["m","m","m"]
lst = re.findall(r+"\d"+","5点之前,不要给我5000万)
print(list) #["5","5000")

2、search会进行匹配,但是如果匹配到了第一个结果,就会返回这个结果,如果匹配不上,search返回的择时None
ret = re.search(r"\d","5点之前,不要给我5000万).group()
print(ret) #5

3、match只能从字符串的开头进行匹配
ret = re.match("a","abc").group()
print(ret) # a

4、finditer和findall差不多,只不过这时返回的是迭代器(重点)
it = re.finditer("m","mai le fo len,mai ni mei!")
for el in it:
    print(el.group()) # 依然需要分组

5、compile()可以将一个长长的正则进行预加载,方便后面的使用
obj = re.compile(r"\d{3}") # 将正则表达式编译成为一个 正则表达式对象 ,规则要匹配的是3个数字
ret = re.search("abc123eee") # 正则表达式对象调用search,参数为待匹配的字符串
print(ret.group()) # 123

6、正则中的内容如何单独提取
d单独获取到正则中的具体内容可以给分组起名字
s = """
<div class="西游记"><span id="10010">中国联通</span></div>
"""

obj = re.compile(r"<span id='(?P<id>\d+)'(?P<name>\w+)<span>",re.s)
result = obj.search(s)
print(result.group()) # <span id="10010">中国联通</span>
print(result.group("id")) # 10010 # 获取id组的内容
print(result.group("name") # 中国联通  # 获取name组的内容

 

标签:search,group,模块,re,电话号码,print,findall
来源: https://www.cnblogs.com/hanyr/p/16282768.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有