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

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

什么是正则表达式(Regular Expression)?

正则表达式是一种用来描述、匹配,甚至替换文本的字符串模式。用于处理字符串文本非常方便和高效,是文本处理中最常用的工具之一。

Python 内置了一个用于正则表达式处理的模块——re。

re 包基础用法

1. 正则表达式的基本语法

在 re 中,正则表达式是由元字符文本字符组成的表达式。

元字符包括(不完全列举):

  • .:匹配任意字符
  • ^:匹配字符串的开头
  • $:匹配字符串的结尾
  • |:匹配任意一个表达式(或)
  • []:匹配括号中的任何一个字符
  • *:匹配前一个字符出现0或多次
  • +:匹配前一个字符出现1或多次
  • ?:匹配前一个字符出现0或1次
  • {m}:匹配前一个字符出现m次
  • {m,n}:匹配前一个字符出现m到n次

文本字符则是指匹配具体文本的字符,比如数字、字母、中文等。

例子:.?码家.{1,2},其中,.表示可匹配任意字符,?表示前面的.字符出现1次或0次,{1,2}表示匹配前面的码家文本字符串中的1个字符或2个字符。

2. re 中函数的使用

re 中常用的函数:

  • re.match(pattern, string[, flags]):在字符串的开头匹配一个模式,如果不匹配则返回 None。
  • re.search(pattern, string[, flags]):扫描整个字符串并返回第一个成功的匹配,如果没有匹配返回 None。
  • re.findall(pattern, string[, flags]):搜索整个字符串,以列表的形式返回所有匹配的子串。
  • re.sub(pattern, repl, string[, count, flags]):使用后置字符串将字符串中所有匹配的子串替换为 repl。

2.1 re.match

re.match() 从字符串的开头开始匹配模式,如果匹配到,则返回一个匹配对象,可以使用 group() 方法获取匹配到的字符串,否则返回 None。

例子:使用 re.match 匹配字符串开头的数字。

import re

s = '007 James Bond'
m = re.match(r'\d+', s)
if m:
    print(m.group())
else:
    print('匹配失败')

输出结果为:007

2.2 re.search

re.search() 从整个字符串里搜索匹配模式,如果匹配到,则返回一个匹配对象,可以使用 group() 方法获取匹配到的字符串,否则返回 None。

例子:使用 re.search 匹配字符串中的数字。

import re

s = '007 James Bond'
m = re.search(r'\d+', s)
if m:
    print(m.group())
else:
    print('匹配失败')

输出结果为:007

2.3 re.findall

re.findall() 从整个字符串里搜匹配模式,返回所有匹配到的子串。

例子:使用 re.findall 匹配字符串中的数字。

import re

s = '007 James Bond'
m = re.findall(r'\d+', s)
if m:
    print(m)
else:
    print('匹配失败')

输出结果为:['007']

2.4 re.sub

re.sub() 将字符串中匹配到的子串用后置字符串进行替换。

例子:使用 re.sub 将字符串中的数字全部替换成 0

import re

s = '007 James Bond'
print(re.sub(r'\d+', '0', s))

输出结果为:000 James Bond

正则表达式实战

1. 匹配手机号码

规则:中国11位手机号码,以1开头,第二位不是0或1,剩下位数是 0~9 的数字。

import re

phone = '13912345678'
pattern = r'^1[^01]\d{9}$'
if re.match(pattern, phone):
    print('匹配成功!')
else:
    print('匹配失败!')

输出结果为:匹配成功!

2. 匹配日期

规则:日期格式为 “XXXX年XX月XX日”,其中,每个 X 可以为数字、字母或汉字。

import re

date = '2022年11月15日'
pattern = r'^[\u4e00-\u9fa5\w]+年[\u4e00-\u9fa5\w]+月[\u4e00-\u9fa5\w]+日$'
if re.match(pattern, date):
    print('匹配成功!')
else:
    print('匹配失败!')

输出结果为:匹配成功!

以上就是本次的正则表达式教程分享,希望对大家能有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 包之 re 正则匹配教程分享 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 在python代码中加入环境变量的语句操作

    在Python代码中加入环境变量可以实现在不同环境下使用同一份代码的效果,方便跨平台开发。下面是加入环境变量的完整攻略: 步骤一:导入os模块 在Python中使用环境变量需要导入os模块,可以通过以下代码实现: import os 步骤二:设置环境变量 在Python中可以使用os.environ[x] = y来设置环境变量,其中x是环境变量名,y是环境变…

    python 2023年6月3日
    00
  • Python实现socket非阻塞通讯功能示例

    接下来我会详细讲解Python实现socket非阻塞通讯的完整攻略。 什么是Socket非阻塞通讯 在网络编程中,我们常常需要使用Socket来进行网络通信。而在Socket的使用过程中,一般都会采用阻塞式编程方式。即当Socket收到请求或发送数据时,程序会一直等待,直到数据传输完成才会执行下一步操作。 而Socket非阻塞通讯则是指在Socket通信过程…

    python 2023年6月6日
    00
  • 快速解决pandas.read_csv()乱码的问题

    下面是快速解决pandas.read_csv()乱码问题的完整攻略。 1. 查看文件编码格式 使用notepad++或者其他代码编辑器打开csv文件,查看Encoding栏里的编码格式。如果发现是UTF-8,则在pandas.read_csv()中需要加上encoding=’utf-8’来指定编码。 示例代码: import pandas as pd df …

    python 2023年5月13日
    00
  • Python中正则表达式match()、search()函数及match()和search()的区别详解

    以下是详细讲解“Python中正则表达式match()、search()函数及match()和search()的区别详解”的完整攻略。 正则表达式基本语法 正则表达式是一种用于匹配文本的模式。Python中,我们使用re模块来处理正则表达式。正则表达式的基本语法如下: 符号:匹配指定的字符。 集合:匹配指定的字符集。 量词:匹配指定的数量。 边界:匹配指定的…

    python 2023年5月14日
    00
  • 在 Pandas DataFrame Python 中添加新列 [重复]

    【问题标题】:Add new column in Pandas DataFrame Python [duplicate]在 Pandas DataFrame Python 中添加新列 [重复] 【发布时间】:2023-04-02 21:05:01 【问题描述】: 例如,我在 Pandas 中有数据框: Col1 Col2 A 1 B 2 C 3 现在,如果我…

    Python开发 2023年4月8日
    00
  • Python实现直播弹幕自动发送功能

    Python实现直播弹幕自动发送功能攻略 直播弹幕自动发送功能的实现,本质上需要模拟用户登录直播平台、打开直播间页面、向直播间发送弹幕等一系列操作。其中,Python作为一门强大的脚本语言,可以通过第三方库实现这些任务。下面我们提供一个Python实现直播弹幕自动发送功能的攻略,帮助您开始自己的实现。 步骤1:确定目标直播平台 请确定您需要自动发送弹幕的直播…

    python 2023年6月6日
    00
  • 15面向对象特性

    面向对象特性 封装 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。要了解封装,离不开“私有化”,就是将类或者是函数中的某些属性限制在某个区域之内,外部无法调用。 封装的作用: 1、保护隐私(把不想别人知道的东西封装起来) 2、隔离复杂度(比如:电视机,我们看见的就是一…

    python 2023年4月24日
    00
  • 基于Python编写一个图片识别系统

    基于Python编写一个图片识别系统一般包含以下步骤: 1. 确定图片识别任务类型 在开始编写图片识别系统之前,需要先明确图片识别任务的类型。图片识别任务类型包括但不限于文字识别、人脸识别、物体识别等等。 2. 收集数据集 根据图片识别任务类型,需要收集相应的数据集。数据集可以从公开数据集库中获取,也可以自己收集。 3. 数据预处理 获取到数据集后,需要对数…

    python 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部