Python3 正则表达式

在 Python3 中正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

re 模块使 Python 语言拥有全部的正则表达式功能。

compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

本章节主要介绍 Python 中常用的正则表达式处理函数。

re.match 函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。

函数语法:

re.match(pattern, string, flags=0)

函数参数说明:

参数描述

pattern匹配的正则表达式

string要匹配的字符串。

flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

匹配成功 re.match 方法返回一个匹配的对象,否则返回 None。

我们可以使用 group(num) 或 groups() 匹配对象函数来获取匹配表达式。

匹配对象方法描述

group(num=0)匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。

groups()返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

实例 1:

#!/usr/bin/python

import re

print(re.match('www', 'www.w3cschool.cn').span())  # 在起始位置匹配

print(re.match('cn', 'www.w3cschool.cn'))         # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)

None

实例 2:

#!/usr/bin/python3

import re

line = "Cats are smarter than dogs"

matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)

if matchObj:

print ("matchObj.group() : ", matchObj.group())

print ("matchObj.group(1) : ", matchObj.group(1))

print ("matchObj.group(2) : ", matchObj.group(2))

else:

print ("No match!!")

以上实例执行结果如下:

matchObj.group() :  Cats are smarter than dogs

matchObj.group(1) :  Cats

matchObj.group(2) :  smarter

re.search 方法

re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

re.search(pattern, string, flags=0)

函数参数说明:

参数描述

pattern匹配的正则表达式

string要匹配的字符串。资讯

flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

匹配成功 re.search 方法返回一个匹配的对象,否则返回 None。

我们可以使用 group(num) 或 groups() 匹配对象函数来获取匹配表达式。

匹配对象方法描述

group(num=0)匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。

groups()返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

实例 1:

#!/usr/bin/python3

import re

print(re.search('www', 'www.w3cschool.cn').span())  # 在起始位置匹配

print(re.search('cn', 'www.w3cschool.cn').span())         # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)

(14, 16)

(0)

相关推荐

  • Python正则表达式之re.match()分组

    https://www.jianshu.com/p/cc26837242b1 我们在面对生物数据,比如序列信息(比如碱基序列.氨基酸序列等)的时候, 会时常要问,这其中是否包含着且含有多少某种已知的模 ...

  • 数据清洗 常用正则表达式大全

    数据挖掘全流程包括采集.清洗和分析.而清洗工作往往会占到数据挖掘的80%的工作量.比如,最常见的文本数据,计算机是无法分析文本数据的,我们需要从文本中抽取出需要的数据,并将其编码为数字.这个从文本中抽 ...

  • 最全面的Python正则表达式详解,读完你绝不后悔

    正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...

  • Python re模块用法详解

    在Python爬虫过程中,实现网页元素解析的方法有很多,正则解析只是其中之一,常见的还有BeautifulSoup和lxml,它们都支持网页HTML元素的解析操作.本节重点讲解如何使用re正则解析模块 ...

  • 说说Python中的正则表达式?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • 第63天:正则表达式

    正则表达式是一个特殊的字符串序列.一种模式,用来判断字符串是否符合这种模式,如:判断邮件地址是否有 @ 符号,判断手机号是否正确等待. 基本语法 在正则表达式中,可以使用 \d 匹配数字,\w 匹配数 ...

  • Python正则表达式,这一篇就够了

    大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中关于 正则表达式的函数. re模块主要定义了9个常量.12个函 ...

  • Python3正则表达式(一)基本语法规则

    坚强的狗蛋 2017-12-18 23:43:27 8341 收藏 27分类专栏: python3正则表达式 文章标签: python 正则表达式 re模块版权正则表达式是一个很强大的字符串处理工具, ...

  • python3正则表达式的几个高级用法

    isscollege 2018-04-28 22:56:58 24189 收藏 42分类专栏: python 正则分组版权 教你用代码玩转PPT相信每个程序猿对写PPT感到困扰,没有灵感,憋得头痛,有 ...

  • 使用python3的正则表达式爬取图片链接

    https://blog.csdn.net/lhh134/article/details/88713918?utm_medium=distribute.pc_relevant_download.non ...

  • 正则表达式 – 语法 | 菜鸟教程

    正则表达式 - 语法 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件 ...

  • 正则表达式 – 教程 | 菜鸟教程

    正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"). 正则表达式使用单个字符串来描述.匹配一 ...

  • 50道正则表达式笔试题参考答案(第11-20题)

    各位客官姥爷好,欢迎回来.我们在上节给出了前10道正则表达式练习题目和参考答案,相信各位姥爷都有对照着练习.在本节清风将给出第11-20题的参考答案. PS:在各位客官姥爷跟着清风一起完成本系列的练习 ...

  • 50道正则表达式笔试题参考答案(第21-30题)

    各位客官姥爷好,欢迎回来.我们在上节给出了第11-20道正则表达式题目和参考答案,本节将继续正则表达式系列题目,请看下方第21-30题的参考答案. PS:在各位客官姥爷跟着清风一起完成本系列的练习后, ...

  • 50道正则表达式笔试题参考答案(第1-10题)

    各位客官姥爷好,欢迎回来.我们上节留下的50道正则表达式笔试练习题,有不少客官姥爷在后台回复他自己的答案.[嘿嘿,相信肯定也有偷懒没做的(收藏夹里吃灰).没关系,清风在这里陪您一起做] 一次性做50道 ...

  • 50道正则表达式笔试题参考答案(第31-40题)

    各位客官姥爷好,欢迎回来.我们在上节给出了第21-30道正则表达式题目和参考答案,本节将继续正则表达式系列题目,请看下方第31-40题的参考答案. PS:在各位客官姥爷跟着清风一起完成本系列的练习后, ...