Python 正则表达式基础知识点及实例

Python 正则表达式基础知识点及实例

什么是正则表达式

正则表达式,也称为 regex 或 regexp,是一种用于匹配文本模式的工具,它提供了一种强大、灵活、通用的方式来查找文本中的特定模式。Python 中的正则表达式是通过 re 模块实现的。

re 模块常用函数

1. re.search()

re.search() 方法用于在文本中查找匹配的子串,并返回第一个匹配的子串。如果搜索不到返回 None。

import re

# 查找第一个匹配的子串
str = 'Hello, Python!'
res = re.search('Python', str)
print(res.group())

输出结果:Python

2. re.match()

re.match() 方法用于从文本开始处匹配一个正则表达式模式,并返回匹配的第一个子串。如果匹配不到则返回 None。

import re

# 从文本开始处匹配子串
str = 'Hello, Python!'
res = re.match('Hello', str)
print(res.group())

输出结果:Hello

3. re.findall()

re.findall() 方法用于在文本中查找匹配的子串,返回一个包含所有匹配子串的列表。如果没有匹配则返回空列表。

import re

# 查找所有匹配的子串
str = 'Hello, Python! I love Python!'
res = re.findall('Python', str)
print(res)

输出结果:['Python', 'Python']

正则表达式语法

1. 常用字符

在正则表达式中,一些常用的字符含义如下:

字符 含义
. 匹配除换行符 \n 外的任何字符
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式零次或一次
\ 转义字符
[] 字符集,匹配方括号中包含的任意字符
^ 匹配字符串开头
$ 匹配字符串结尾

2. 元字符

在正则表达式中,有一些元字符具有特殊的含义,如下:

元字符 含义
() 捕获组
{} 重复前面的子表达式若干次
| 或,匹配 | 左边或右边的子表达式
\d 数字字符,等价于 [0-9]
\w 单词字符,等价于 [a-zA-Z0-9_]
\s 空白字符,包括空格、制表符、换行符等
\t 制表符
\n 换行符
\r 回车符
\b 单词边界
\B 非单词边界

示例

1. 匹配手机号码

以下示例展示了如何使用正则表达式匹配中国大陆的手机号码。

import re

# 匹配手机号码
phone = '13512341234'
pattern = r'^1[3-9]\d{9}$'
res = re.match(pattern, phone)
if res:
    print(res.group())
else:
    print('不是手机号码')

输出结果:13512341234

2. 匹配电子邮件

以下示例展示了如何使用正则表达式匹配电子邮件。

import re

# 匹配电子邮件
email = 'test123@mail.com'
pattern = r'^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$'
res = re.match(pattern, email)
if res:
    print(res.group())
else:
    print('不是电子邮件')

输出结果:test123@mail.com

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 正则表达式基础知识点及实例 - Python技术站

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

相关文章

  • 如何使用Python实现斐波那契数列

    下面是详细讲解如何使用Python实现斐波那契数列的完整攻略。 什么是斐波那契数列? 斐波那契数列是指这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列可以用如下递推式表示: F(0) = 0,F(1) = 1 F(n) = F(n-1) + F(n-2) (n≥2,n∈N*) 斐波那契数列是一种非常有趣的数列,它的特点是前两…

    python 2023年6月5日
    00
  • Python中进程和线程的区别详解

    下面我来详细讲解“Python中进程和线程的区别详解”的完整攻略。 什么是进程和线程 在介绍进程和线程的区别之前,先来了解一下它们分别是什么。 进程 进程是操作系统中正在运行的程序的实例。每个进程都有它自己的地址空间、内存、数据栈以及其他用于跟踪进程执行的辅助数据。 线程 线程是操作系统能够进行运算调度的最小单位。一个进程中可以有多个线程,它们共享该进程的地…

    python 2023年5月19日
    00
  • Python基于PycURL实现POST的方法

    下面是Python基于PycURL实现POST的方法的详细攻略: 什么是PycURL? PycURL是Python的一个库,它能够在Python中通过libcurl使用URL语法来进行网络操作。实际上,它是在Python语言的基础上,通过绑定libcurl库提供的C接口,使用Python的语法实现网络数据的获取和传输。 我们可以使用PycURL进行HTTP网…

    python 2023年6月3日
    00
  • 如何在Python中进行函数式编程?

    Python是一门支持函数式编程(Functional Programming)的语言,可以通过以下方式来进行函数式编程: 1.使用匿名函数Lambda Lambda可以创建匿名函数,使得简短的代码更加简洁。可以通过以下方式使用Lambda函数: square = lambda x: x**2 print(square(5)) # 输出: 25 # 此处的 …

    python 2023年4月19日
    00
  • 从Numpy数组创建一个Pandas DataFrame,并指定索引列和列头

    创建Pandas DataFrame通常涉及到将原始数据转换成Pandas所能理解的数据结构,即DataFrame。在Python中,使用Numpy数组来创建Pandas DataFrame是一种非常有效的方法。下面是通过Numpy数组创建Pandas DataFrame的完整攻略,包括指定索引列和列头。 创建Pandas DataFrame 要从Numpy…

    python-answer 2023年3月25日
    00
  • 深入理解python对json的操作总结

    深入理解Python对JSON的操作总结 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语法,但不依赖于JavaScript。JSON格式的数据易于阅读和编写,同时也易于机器解析和生成。JSON格式由两种基本结构组成:键值对和数组。JSON格式的数据可以在不同的编程语言之…

    python 2023年5月20日
    00
  • python爬虫常用的模块分析

    Python爬虫常用的模块分析 在Python中,爬虫是很常见的一个应用场景。Python作为一门强大的脚本语言,有很多强大的库可以用于爬虫。下面就对Python爬虫常用的模块进行分析。 requests模块 requests模块是Python中最常用的http请求库之一。可以使用它发送get、post等http请求。该模块提供了很多常用的方法,如get()…

    python 2023年5月14日
    00
  • Django 如何使用 Celery 完成异步任务或定时任务

    以前版本的 Celery 需要一个单独的库(django-celery)才能与 Django 一起工作, 但从 Celery 3.1 开始,情况便不再如此,我们可以直接通过 Celery 库来完成在 Django 中的任务。 安装 Redis 服务端 以 Docker 安装为例,安装一个密码为 mypassword 的 Redis 服务端 docker ru…

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