首页 > 编程语言 >python中正则模块

python中正则模块

时间:2024-09-06 10:26:39浏览次数:8  
标签:group python 13812345678 re 正则 result 模块 print match

import re

# 1. findall()  匹配字符串中所有符合正则的字符串,并返回一个列表
result_list = re.findall(r"\d+", "我的手机号是13812345678,我的QQ号是456789123")
print(result_list, type(result_list))  # ['13812345678', '456789123'] <class 'list'>
print("==============")

# 2. finditer()  匹配字符串中所有符合正则的字符串,并返回一个迭代器
result_iter = re.finditer(r"\d+", "我的手机号是13812345678,我的QQ号是456789123")
for match in result_iter:
    print(match, type(match))  # Match 对象  从Match对象中获取数据需要使用group()方法
    print(match.group())  # 13812345678 456789123

print("==============")
# 3. search()  匹配字符串中第一个符合正则的字符串,并返回一个Match对象
result_match = re.search(r"\d+", "我的手机号是13812345678,我的QQ号是456789123")
print(result_match.group(), type(result_match))  # Match 对象  <class 're.Match'>

print("==============")
# 4. match()  从头开始匹配,如果字符串开始位置匹配正则表达式,返回一个Match对象,否则返回None
# 可以认为在正则的前面加上了  ^
result_match = re.match(r"\d+", "我的手机号是13812345678,我的QQ号是456789123")
try:
    print(result_match.group(), type(result_match))  # 13812345678 <class 're.Match'>
except Exception:
    print("NoneType类型中没有group()方法")

print("================")
# 5. 预加载正则表达式
obj = re.compile(r"\d+")
result_iter = obj.finditer("我的手机号是13812345678,我的QQ号是456789123")
for match in result_iter:
    print(match.group())  # 13812345678 456789123


print("================")
# 6. 惰性匹配
s = """
<div class='jay'><span id='1'>抽烟</span></div>
<div class='jj'><span id='2'>喝酒</span></div>
<div class='jolin'><span id='3'>烫头</span></div>
<div class='sylar'><span id='4'>阿巴阿巴</span></div>
<div class='tory'><span id='5'>???</span></div>
"""

obj = re.compile(r"<div class='.*?'><span id='(?P<id>.*?)'>(?P<content>.*?)</span></div>", re.S)
result_iter = obj.finditer(s)
for match in result_iter:
    print(match.group(2))  # 抽烟 喝酒 烫头 阿巴阿巴 ???
    print(match.group("id"))

    # 构建为字典的格式
    print(match.groupdict())

标签:group,python,13812345678,re,正则,result,模块,print,match
From: https://www.cnblogs.com/lsixu/p/18399737

相关文章

  • 14 Python面向对象编程:反射
    本篇是Python系列教程第14篇,更多内容敬请访问我的Python合集在Python中,“反射”通常指的是根据字符串查找并执行相关的类、方法或者属性的能力。Python提供了几个内置函数和语法特性来支持这种能力,比如getattr(),setattr(),hasattr(),delattr()以及dir()等。这些功能......
  • 15 Python模块
    本篇是Python系列教程第15篇,更多内容敬请访问我的Python合集一个模块其实就是一个文件(以.py结尾)。使用模块的好处是便于维护和重用代码。要创建一个模块,只需编写一个新的文本文件,保存为.py扩展名。1引入模块1.1导入整个模块importmymodulemymodule.some_functi......
  • python 命令行参数解析
    追加参数pythonexample.pyNewYorkLosAngelesChicago给参数申明分配内存Locations:['NewYork','LosAngeles','Chicago']具体实现importargparseparser=argparse.ArgumentParser(description='Processsomelocations.')parser.ad......
  • Python
    Python安装HelloWorldprint("HelloWorld")基础字面量:代码中被写下来固定的值,数字:Number整数int浮点数float复数complex布尔bool字符串:String(双引号)列表:List元组:Tuple集合:Set字典:Dictionary注释单行注释#开头#我是注释print("HelloWorld")......
  • Python开发实例(30)文件搜索工具:创建一个程序,允许用户在指定目录下搜索文件
    创建一个文件搜索工具是一个非常有用的项目,它可以帮助用户在指定目录下查找文件。以下是一个基本的文件搜索工具示例,它使用Python的os库来进行文件搜索。importosdefsearch_files(directory,filename):found_files=[]forroot,_,filesinos.walk(director......
  • Flask:Python轻量级Web框架详解
    Flask是一个用Python编写的轻量级Web应用框架。它被设计为易于使用和扩展,非常适合小型项目和微服务,同时也能够支持大型应用。Flask依赖于少量的外部库,并且提供了一个简单的方式来创建Web应用。Flask的主要特点轻量级:Flask核心非常简单,使得它易于理解和扩展。扩展性:Flask可......
  • Python异步编程:asyncio库详解
    \asyncio是Python的标准库,用于编写单线程的并发代码。它使用async和await语法来定义和调用异步函数,使得I/O密集型程序能够更有效地使用资源。asyncio的主要特点事件循环:asyncio程序由事件循环驱动,它负责调度协程的执行。协程:使用async定义的异步函数被称为协程。任务:asyn......
  • Python批量采集某东评论,实现可视化分析
    女朋友没事就喜欢网购,买一大堆又不用,总说不合适,为了不让她花冤枉钱,于是我决定用Python写一个采集商品评论的脚本,然后对商品进行分析,这样就不怕踩到坑了!  让我们直接开始本次操作准备工作环境安装Python3.10Pycharm模块使用采集数据模块-DrissionPage->pipinsta......
  • Python使用MySQL数据库
    安装MySQL-python要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。下载地址:https://pypi.python.org/pypi/MySQL-python/下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:>>python setup.py install ......
  • python 深/浅拷贝及其区别
    概述1、什么是浅拷贝?浅拷贝是指创建一个新的数据结构对象,该对象是原始数据结构的副本,但不复制原始数据结构中的嵌套对象的引用。浅拷贝可以通过各种方式完成,如切片、工厂函数或copy模块的copy方法。2、什么是深拷贝?深拷贝是指创建一个新的数据结构对象,该对象是原始数据结构及......