Python 正则表达式

正则表达式是搜索模式形成的字符序列。

它可用于检查字符串是否与某种字符匹配的搜索模式。

RegEx模块

Python有一个内置的包re,可以用来处理正则表达式。

导入re模块:

import re

Python中的RegEx

导入re模块后,可以开始使用正则表达式:

实例

搜索字符串以查看它是否以“The”开头并以“Spain”结尾:

import re

txt = "The rain in Spain"

x = re.search("^The.*Spain$", txt)

RegEx函数

re模块提供了一组函数,允许我们搜索字符串以进行匹配:

函数

描述

返回包含所有匹配项的列表

匹配整个字符串中的任意位置,返回第一个成功的匹配对象

返回一个能够匹配的子串将字符串分割的列表

用字符串替换一个或多个匹配项

元字符

元字符是具有特殊含义的字符:

字符

描述

例子

试一试

[]

一个字符集

"[a-m]"

\

发出特殊序列信号(也可用于转义特殊字符)

"\d"

.

匹配任意字符,除了换行符

"he..o"

^

匹配字符串的开头

"^hello"

$

匹配字符串的末尾。

"world$"

*

匹配0个或多个的表达式。

"aix*"

+

匹配1个或多个的表达式。

"aix+"

{}

匹配出现的次数

"al{2}"

|

或关系

"falls|stays"

()

匹配括号内的表达式,也表示一个组

特殊序列

一个特殊的序列\后跟下面列表中的一个字符,具有特殊含义:

字符

描述

例子

试一试

\A

匹配以字符串开始。

"\AThe"

\b

匹配一个词的边界。

r"\bain"

r"ain\b"

\B

匹配一个非单词边界。

r"\Bain"

r"ain\B"

\d

匹配一个数字,等价于[0-9]

"\d"

\D

匹配一个非数字字符,等价于[^0-9]

"\D"

\s

匹配一个空白字符,包括空格、制表符、换页符和换行符。

"\s"

\S

匹配一个非空白字符。

"\S"

\w

匹配一个单字字符(字母、数字或者下划线)

等价于[A-Za-z0-9_]。

"\w"

\W

匹配一个非单字字符。

等价于[^A-Za-z0-9_]

"\W"

\Z

匹配指定的字符串结尾

"Spain\Z"

集合是一对方括号内的一组字符[],具有特殊含义:

描述

试一试

[arn]

返回匹配到 (a, r, or n) 中的任何字符

[a-n]

返回匹配 a ~ n 之间的所有字符

[^arn]

返回匹配除 a, r, n 之外的任何字符

[0123]

返回匹配到 (0, 1, 2, 3) 中的任何字符

[0-9]

返回匹配任何 0 ~ 9 之间的数字

[0-5][0-9]

返回配置到 00~ 59 之间的两位数字

[a-zA-Z]

返回匹配到的小写a-z字符,大写 A-Z字符

[+]

在集合中, +, *, ., |, (), $,{} 这些字符没有特别的意义, 因此 [+]的意思:返回+任何字符

findall()函数

findall()函数返回包含所有匹配项的列表。

实例

打印所有匹配的列表:

import re

str = "The rain in Spain"

x = re.findall("ai", str)

print(x)

该列表按照找到的顺序包含匹配项。

如果未找到匹配项,则返回空列表:

实例

如果未找到匹配项,则返回空列表:

import re

str = "The rain in Spain"

x = re.findall("Portugal", str)

print(x)

search()函数

search()函数在字符串中搜索匹配项,如果匹配则返回Match对象。

如果有多个匹配,则仅返回匹配的第一个匹配项:

实例

在字符串中搜索第一个空格字符:

import re

str = "The rain in Spain"

x = re.search("\s", str)

print("The first white-space character is located in position:", x.start())

如果未找到匹配项,则返回None值:

实例

不返回匹配的搜索:

import re

str = "The rain in Spain"

x = re.search("Portugal", str)

print(x)

split()函数

split()函数返回一个列表,其字符串在每次匹配时被拆分:

实例

在每个空格字符处拆分:

import re

str = "The rain in Spain"

x = re.split("\s", str)

print(x)

您可以通过指定maxsplit 参数来控制出现次数 :

实例

仅在第一次出现时分割字符串:

import re

str = "The rain in Spain"

x = re.split("\s", str, 1)

print(x)

sub()函数

sub()函数将匹配替换为您选择的文本:

实例

用数字9替换每个空格字符:

import re

str = "The rain in Spain"

x = re.sub("\s", "9", str)

print(x)

可以通过指定count 参数来控制替换次数 :

实例

替换前两次出现:

import re

str = "The rain in Spain"

x = re.sub("\s", "9", str, 2)

print(x)

匹配对象

匹配对象是包含有关搜索和结果的信息的对象。

注意:如果没有匹配项,将返回None值,而不是匹配对象。

实例

执行将返回匹配对象的搜索:

import re

str = "The rain in Spain"

x = re.search("ai", str)

print(x) #this will print an object

匹配对象具有用于检索有关搜索的信息的属性和方法,结果如下:

.span()返回包含匹配的开始和结束位置的元组。

.string返回传递给函数的字符串

.group()返回匹配的字符串部分

实例

打印第一个匹配事件的位置(开始和结束位置)。

正则表达式查找以大写“S”开头的任何单词:

import re

str = "The rain in Spain"

x = re.search(r"\bS\w+", str)

print(x.span())

实例

打印传递给函数的字符串:

import re

str = "The rain in Spain"

x = re.search(r"\bS\w+", str)

print(x.string)

实例

打印匹配的字符串部分。

正则表达式查找以大写“S”开头的任何单词:

import re

str = "The rain in Spain"

x = re.search(r"\bS\w+", str)

print(x.group())

注意:如果没有匹配项,将返回None值,而不是匹配对象。

菜鸟教程python正则表达式_Python 正则表达式相关推荐

  1. 菜鸟教程python实例_Python 处理Cookie的菜鸟教程(一)Cookie库

    这篇文章主要为大家详细介绍了Python 处理Cookie的菜鸟教程(一)Cookie库,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编 ...

  2. 菜鸟教程python正则表达式_Python正则表达式常用函数菜鸟教程

    这篇文章主要为大家详细介绍了Python正则表达式常用函数菜鸟教程,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! Py ...

  3. c++正则表达式_Python正则表达式教程-常用文本处理技巧

    介绍: 正则表达式用于识别模式(pattern)是否存在于给定的字符(字符串)序列中.它们有助于处理文本数据,这通常是涉及文本挖掘的数据科学项目的先决条件.您一定遇到过一些正则表达式的应用程序:它们在 ...

  4. python正则表达式_Python正则表达式简记和re库!

    正则表达式是定义搜索模式的字符序列.通常这种模式被字符串搜索算法用于字符串上的"查找"或"查找和替换"操作,或者用于输入验证. 1. 正则表达式的语法 . 表示 ...

  5. python爬虫菜鸟教程-Python数据分析,学习路径拆解及资源推荐

    原标题:Python数据分析,学习路径拆解及资源推荐 关于Python数据分析,其实网上能够找到的学习资源很多,主要分为两类: 一类是提供各种资源的推荐,比如书单.教程.以及学习的先后顺序: 另一类是 ...

  6. python基础教程菜鸟教程-python基础菜鸟教程,Python的基础语法

    原标题:python基础菜鸟教程,Python的基础语法 什么是Python?Python是一门简单直观的编程语言,并且目前是开源的,可以方便任何人使用. Python的开发哲学:用一种方法,最好是只 ...

  7. python qt5菜鸟教程-Python 网络编程

    关于简单实例 Mac 上运行不出来,有几个报错,做了下修改. server.py #!/usr/bin/python # -*- coding: UTF-8 -*- import socket # 建 ...

  8. python爬虫菜鸟教程-Python爬虫学习100练001

    爬取菜鸟教程最新文章标题以及查看链接并写入excel文件中 -- coding:utf-8 -- 2018年3月24日 爬取菜鸟教程最新文章列表并写入Excel中 导入爬虫库,正则库.Excel库 f ...

  9. 菜鸟教程 - Python 100例

    本博客列出具体题目及其代码,代码github地址 https://github.com/zlhcsm/python-demo-101 本博客来源于菜鸟教程 运行环境为:python3.0 1,题目: ...

  10. 菜鸟教程python正则表达式_python 正则表达式详解

    python 正则表达式详解 1. 正则表达式模式 模式描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字 ...

最新文章

  1. VIVO X1手机通过USB连接电脑访问tomcat
  2. activity 启动模式_Android世界:Activity的启动模式及其适用范围
  3. Latex 算法过长 分页显示方法
  4. 1150 Travelling Salesman Problem (25 分)【难度: 难 / 知识点: 图 模拟 未完成】
  5. cuda profiler使用
  6. SAP C4C url mashup跳转原理 - C4C UI到Mashup的参数传递是如何进行的
  7. bzoj 4517: [Sdoi2016]排列计数
  8. 获取前一天的时间安排表_【央美考研】2021年硕士研究生招生入学考试时间安排...
  9. 企业做的好,离不开这三方面能力
  10. mysql管理工具-SQLyog管理工具
  11. 抢小米软件html版(简单有效)
  12. Markdown 笔记神器 Typora 如何上传本地图片(图床功能)?
  13. 高斯核函数 python实现
  14. spring boot actuator和K8s容器健康检查
  15. 基于双流融合网络的遥感图像融合 论文笔记
  16. Xcode6 安装 IOS7.1 Simulator
  17. 阿里投资分众,大战在即的电梯广告市场却有本糊涂账?
  18. LOL IXTAL CUP 第一日 冠军杯赛 407的夺冠之路
  19. 力扣刷题记录_字符串(自学)
  20. JAVA-Swing技术

热门文章

  1. R语言使用quantmod包的getSymbols函数从指定金融数据源获取指定时间段的股票数据、对股票进行除权除息调整、设置使用Adjusted列的数据
  2. 毕业设计-基于微信小程序的“安心乘车”服务系统
  3. python语言程序设计实践教程答案上海交通大学陈东_《C语言程序设计》蔺德军 主著【摘要 书评 在线阅读】-苏宁易购图书...
  4. IOS AppStore提交流程
  5. Vue 3 脚手架搭建
  6. 小甲鱼第十一课:列表:一个“打了激素”的数组2总结反思
  7. 基于ssm的医院病历管理系统SSM医院管理系统
  8. 【C语言】C语言从入门到精通|第1章 C语言概述—自学笔记
  9. public static void main(String[] args)
  10. mint-ui 图片懒加载及请求数据加载中提示方法