python 包之 re 正则匹配教程分享

目录
  • 一、开头匹配
  • 二、全匹配
  • 三、部分匹配
  • 四、匹配替换
  • 五、匹配替换返回数量
  • 六、分割字符串
  • 七、匹配所有
  • 八、迭代器匹配
  • 九、编译对象
  • 十、修饰符

一、开头匹配

  • 从字符串开头开始匹配
  • 返回匹配对象;如果找不到匹配,则为None
import re

print(re.match('飞兔小哥', '飞兔小哥教你零基础学编程'))
print(re.match('学编程', '飞兔小哥教你零基础学编程'))

二、全匹配

  • 匹配字符串是否和给定的字符一模一样
  • 如果一模一样才返回匹配对象,如果找不到匹配,则为None
import re

print(re.fullmatch('飞兔小哥教你零基础学编程', '飞兔小哥教你零基础学编程'))
print(re.fullmatch('飞兔小哥', '飞兔小哥教你零基础学编程'))

三、部分匹配

  • 只要在字符串中找到字符存在即可
  • 找到返回匹配对象,如果找不到匹配,则为None
import re

print(re.search('autofelix', '飞兔小哥教你零基础学编程'))
print(re.search('飞兔小哥', '飞兔小哥教你零基础学编程'))

四、匹配替换

  • 用正则表达式去匹配原始字符串,并把匹配到的内容替换
import re

# 去掉电话号码中的-
num = re.sub(r'\D', '', '188-1926-8053')
print(num)
# 18819268053

五、匹配替换返回数量

  • 用正则表达式去匹配原始字符串,并把匹配到的内容替换
  • 并且返回被替换掉的数量
import re

# 去掉电话号码中的-
num = re.subn(r'\D', '', '188-1926-8053')
print(num)
# (18819268053, 2)

六、分割字符串

  • 按照正则表达式的规则来分割字符串,并返回列表
  • 可以规定分割的次数
import re

print(re.split('a*', 'hello world'))
# ['', 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '']

print(re.split('a*', 'hello world', 1))
# ['', 'hello world']

七、匹配所有

  • 在字符串中匹配所有符合正则表达式的对象
  • 并把这些对象通过列表list的形式返回
import re

pattern = re.compile(r'\W+')
result1 = pattern.findall('hello world!')
result2 = pattern.findall('hello world!', 0, 7)

print(result1)
# [' ', '!']

print(result2)
# [' ']

八、迭代器匹配

  • 在字符串中匹配所有符合正则表达式的对象
  • 并把这些对象通过迭代器的形式返回
import re

pattern = re.compile(r'\W+')
result = pattern.finditer('hello world!')
for r in result:
print(r)

九、编译对象

  • 把正则表达式编译成Pattern对象
import re

pattern = re.compile(r'\W+')

十、修饰符

  • re.I:忽略大小写
  • re.L:本地化识别匹配
  • re.M:多行匹配
  • re.S:使.匹配包括换行在内的所有字符
  • re.U:根据unicode字符解析字符
  • re.X:给予灵活的格式以便理解
import re

content = "Cats are smarter than dogs"
print(re.search(r'DOGS', content, re.M | re.I))

到此这篇关于python 包之 re 正则匹配教程分享的文章就介绍到这了,更多相关python 包 re 正则匹配内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python3正则匹配re.split,re.finditer及re.findall函数用法详解

    本文实例讲述了Python3正则匹配re.split,re.finditer及re.findall函数用法.分享给大家供大家参考,具体如下: re.split re.finditer re.findall @(python3) 官方 re 模块说明文档 re.compile() 函数 编译正则表达式模式,返回一个对象.可以把常用的正则表达式编译成正则表达式对象,方便后续调用及提高效率. re 模块最离不开的就是 re.compile 函数.其他函数都依赖于 compile 创建的 正则表达式对象

  • python re.sub()替换正则的匹配内容方法

    如下所示: import re c = re.compile(r'\d') s = 'you1are2welcome' # 用指定的内容,替换正则匹配的内容,也可以指定替换次数 ret = c.sub(' ', s, 1) print(ret) # 处理函数接收一个参数(每次的匹配结果) def deal(s): return str(int(s.group()) * 2) # 可以认为干预替换过程,传递一个函数即可 ret = re.sub(r'\d', deal, 'you1are2welc

  • python正则表达式re.match()匹配多个字符方法的实现

    1.  *表示匹配任意多个字符   \d*表示匹配任意多个数字字符 import re text = "123h1ello world" text1 = "123Hello world456" text2 = "hello world" res = re.match("\d*", text) res1 = re.match("\d*", text1) res2 = re.match("\d*&qu

  • python re正则匹配网页中图片url地址的方法

    最近写了个python抓取必应搜索首页http://cn.bing.com/的背景图片并将此图片更换为我的电脑桌面的程序,在正则匹配图片url时遇到了匹配失败问题. 要抓取的图片地址如图所示: 首先,使用这个pattern reg = re.compile('.*g_img={url: "(http.*?jpg)"') 无论怎么匹配都匹配不到,后来把网页源码抓下来放在notepad++中查看,并用notepad++的正则匹配查找,很轻易就匹配到了,如图: 后来我写了个测试代码,把图片地

  • python 包之 re 正则匹配教程分享

    目录 一.开头匹配 二.全匹配 三.部分匹配 四.匹配替换 五.匹配替换返回数量 六.分割字符串 七.匹配所有 八.迭代器匹配 九.编译对象 十.修饰符 一.开头匹配 从字符串开头开始匹配 返回匹配对象:如果找不到匹配,则为None import re print(re.match('飞兔小哥', '飞兔小哥教你零基础学编程')) print(re.match('学编程', '飞兔小哥教你零基础学编程')) 二.全匹配 匹配字符串是否和给定的字符一模一样 如果一模一样才返回匹配对象,如果找不到匹

  • Python时间的精准正则匹配方法分析

    本文实例讲述了Python时间的精准正则匹配方法.分享给大家供大家参考,具体如下: 要用正则表达式精准匹配时间,其实并不容易 方式一: >>> import re >>> t = '19:10:48' >>> m = re.match(r'(.*):(.*):(.*)', t) >>> m.groups() ('19', '10', '48') 方式二: >>> t = '19:10:48' >>>

  • python 制作python包,封装成可用模块教程

    首先编写py程序: printtest.py def test(): print('print test') 将以上.py文件做成python模块,需要在相同目录下创建setup.py文件,setup.py中输入配置信息: from setuptools import setup setup(name='printtest', version='1.0', py_modules=['printtest'], ) 打开终端,定位到该文件夹下,输入: python setup.py sdist 此时

  • Python中Scrapy框架的入门教程分享

    目录 前言 安装Scrapy 创建一个Scrapy项目 创建一个爬虫 运行爬虫 结论 前言 Scrapy是一个基于Python的Web爬虫框架,可以快速方便地从互联网上获取数据并进行处理.它的设计思想是基于Twisted异步网络框架,可以同时处理多个请求,并且可以使用多种处理数据的方式,如提取数据.存储数据等. 本教程将介绍如何使用Scrapy框架来编写一个简单的爬虫,从而让您了解Scrapy框架的基本使用方法. 安装Scrapy 首先,您需要在您的计算机上安装Scrapy框架.您可以使用以下命

  • Anaconda 离线安装 python 包的操作方法

    因为有时直接使用pip install在线安装 Python 库下载速度非常慢,所以这里介绍使用 Anaconda 离线安装 Python 库的方法. 这里以安装 pyspark 这个库为例,因为这个库大约有180M,我这里测试的在线安装大约需要用二十多个小时,之后使用离线安装的方法,全程大约用时10分钟. 查看所需的 Python 包 如果不知道具体使用什么版本的 Python 库,可以先尝试在 Aanconda Prompt 中直接使用 pip install pyspark 我这里根据提示

  • Python使用正则匹配实现抓图代码分享

    内涵:正则匹配,正则替换,页面抓取,图片保存 . 实用的第一次 Python 代码 参考 #!/usr/bin/env python import urllib import re x=0 def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): global x reg = 'alt=".+?" src="(.+?\.jpg)"' im

  • python 包之 Pillow 图像处理教程分享

    目录 一.安装 二.打开图片 三.转换格式并保存 四.创建缩略图 五.获取图片属性 六.图片信息 七.调色板 八.画板 九.图片模式 十.模式转换 十一.矩阵模式转换 十二.图片尺寸 十三.通道分离 十四.复制.裁剪.粘贴.合并 十五.几何变换 十六.高级图片处理 十七.滤波器处理 十八.设置透明度合成两张图 十九.设置模式合成两张图 二十.草稿模式 二十一.获取通道名称 二十二.获取包围盒 二十三.获取像素值 二十四.获取图片极值 二十五.指定位置像素值 二十六.获取图像直方图 二十七.内存分

  • python正则匹配查询港澳通行证办理进度示例分享

    复制代码 代码如下: import socketimport re '''广东省公安厅出入境政务服务网护照,通行证办理进度查询.分析网址格式为 http://www.gdcrj.com/wsyw/tcustomer/tcustomer.do?&method=find&applyid=身份证号码构造socket请求网页html,利用正则匹配出查询结果'''def gethtmlbyidentityid(identityid): s = socket.socket(socket.AF_INET

  • 使用python实现正则匹配检索远端FTP目录下的文件

    遇到一个问题,需要正则匹配远端FTP目录下的文件,如果使用ftp客户端可以通过命令行很容易的做到这一点,但是暂时没有一个工具支持这样的需求,于是通过python对FTP的支持和对正则表达式的支持,写了这么一个简单的工具,用于使用正则表达式来匹配远端目录的文件. 代码如下 # coding=utf-8 ######################################################################### # File Name: reg_url.py #

  • Python正则匹配判断手机号是否合法的方法

    正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),是计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列匹配某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些匹配某个模式的文本. # 需求 # 定义一个函数,用于判断输入的手机号是否合法 # 并判断它的运营商 # 思路步骤: # 1.首先了解三大运营商的号段分布 # 2.获取用户输入内容 #

随机推荐