前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

正则表达式,简称regex,是文本模式的描述方法。你可以在google上搜索regex或者regexp获得非常多的学习资料。这篇短文介绍在python脚本中使用正则表达式的步骤:

1、导入re模块

Python中所有正则表达式的函数都在re模块中,可以在交互式环境或者脚本文件中输入以下代码。导入该模块:

import re

2、创建正则表达式对象

向re.compile()传入一个表示正则表达式的字符串值,它将返回一个Regex对象。例如要创建一个Regex对象来匹配电话号码模式,可以输入以下代码:

phoneMatch = phoneNumRegex.search(’My number is415-555-4242’)

此时phoneNumRegex就包含了一个Regex对象

3、匹配Regex对象

Regex对象中的search()方法查找传入的字符串,寻找该正则表达式的所有匹配。

phoneMatch = phoneNumRegex.search(’My number is415-555-4242’)

如果字符串中没有找到该正则表达式模式,则search()方法返回None。如果找到该模式则返回一个Match对象。Match有一个group()方法,返回被查找的字符串中实际匹配的文本:

print(‘Phone number found :’+phoneMatch.group())

将期待的模式传递给 re.compile(), 并将得到的 Regex对象保存在phoneNumRegex 中。然后我们在 phoneNumRegex上调用 search(), 向它传入想查找的字符串。查找的结果保存在变量phoneMatch中。模式在这个字符串中找到,所以会返回一个 Match对象。我们就可以在phoneMatch变量上调用 group(), 返回匹配的结果, 显示出完整的匹配,即415-555-4242。

import re
phoneNumRegex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
phoneMatch = phoneNumRegex.search('My number is415-555-4242')
print('Phone number found :'+phoneMatch.group()) 输出:
//Phonenumber found :415-555-4242

总结一下:在 Python中使用正则表达式有几个步骤,但每一步都相当简单。

1.用 import re 导入正则表达式模块。

2.用 re.compile()函数创建一个 Regex对象(记得使用原始字符串)。

3.向 Regex对象的 search()方法传入想查找的字符串。它返回一个Match 对象。

4.调用 Match对象的 group()方法,返回实际匹配文本的字符串

 

Python基础最难知识点:正则表达式(使用步骤)的更多相关文章

  1. python基础语法及知识点总结

    本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...

  2. Python基础(9)--正则表达式

    正则表达式是一个很有用的工具,可处理复杂的字符匹配和替换工作.在Python中内置了一个re模块以支持正则表达式. 正则表达式有两种基本的操作,分别是匹配和替换. 匹配就是在一个文本字符串中搜索匹配一 ...

  3. Day8 Python基础之遗漏知识点(六)

    1. 遗漏知识点 深.浅拷贝:   http://www.cnblogs.com/yuanchenqi/articles/5782764.html a=b: 浅拷贝: 深拷贝 集合(set) 集合的定 ...

  4. python 基础 8.0 regex 正则表达式--常用的正则表达式

    一. python 中常用的正则表达式         二. 正则表达式的网站,可以进行在线正则匹配 https://regex101.com/   1. 使用方法及正则介绍 1> ‘.’  匹 ...

  5. python基础(四)——正则表达式

    #!/usr/bin/python # -*- coding: utf-8 -*- import re print(re.match('www', 'www.runoob.com').span()) ...

  6. python基础篇---列表---知识点回顾

    列表:数据的集合,里面可以放任何的数据类型,可进行增删改查等操作 有序列表功能(index是列表的索引值): ①创建:用  []  表示,里面添加元素,如n2 = [1,2,4,5,5]:    或者 ...

  7. python基础的一些知识点

    ord 将字符转换为ASCIIchr 将ASCII转换为字符 元组不可修改,当只有一个元素时,要添加一个逗号集合不可修改,元素无序,不能重复 列表.元组.字典都是可迭代对象,就是可以遍历的对象多层循环 ...

  8. python基础一 day5 知识点

    Unicode转化为gbk和utf-8 表现形式:str转化为bytes

  9. Python基础(12)--模块

    本文地址:http://www.cnblogs.com/archimedes/p/python-modules.html,转载请注明源地址. 模块简介 如果你退出 Python 解释器重新进入,以前创 ...

随机推荐

  1. 设计模式系列之工厂模式三兄弟(Factory Pattern)

    说明:设计模式系列文章是读刘伟所著<设计模式的艺术之道(软件开发人员内功修炼之道)>一书的阅读笔记.个人感觉这本书讲的不错,有兴趣推荐读一读.详细内容也可以看看此书作者的博客https:/ ...

  2. update语句基本用法

    UPDATE runoob_tbl SET runoob_title='学习 C++' WHERE runoob_id=;

  3. Linux - Python的虚拟环境配置的坑 virtualenv: error: unrecognized arguments: --no-site-packages

    如果你在CentOS8下面配置虚拟环境时,遇到如下错误: [root@localhost ~]# mkvirtualenv my_django usage: virtualenv [--version ...

  4. gulp压缩html,css,js文件流程、监听任务、使用gulp创建服务器、同时运行多个任务、反向代理

    一.初始化 首先先做一个项目初始化,用来记录你项目中用到的工具 再你项目文件下打开一个控制台,输入命令 yarn init -y 进行初始化 输入命令yarn add gulp -g  --- 全局安 ...

  5. 【JMeter_22】JMeter逻辑控制器__录制控制器<Recording Controller>

    录制控制器<Recording Controller> 个人感觉录制的脚本缺陷太明显,没有研究过,暂不做介绍,等后续空了研究后再写

  6. cb03a_c++_数据结构_顺序容器_STL_stack

    /*cb03a_c++_数据结构_顺序容器_STL_stack堆栈:LIFO--Last In First Out后进先出,用于系统程序设计自适应容器(容器适配器),不是独立的容器,是一个适配器栈适配 ...

  7. Quartz.Net系列(六):Quartz五大构件Trigger之TriggerBuilder解析

    所有方法图: 1.Create.Build Create:创建一个TriggerBuilder Build:生成Trigger var trigger = TriggerBuilder.Create( ...

  8. 【django】CMS开发笔记一:虚拟环境配置

    项目代码:https://github.com/pusidun/CMS-django 使用虚拟环境 虚拟环境是Python解释器的虚拟副本.在虚拟环境中安装私有包,不会影响全局的Python解释器.可 ...

  9. 强大的IntelliJ IDEA怎么破解?

    IntelliJ IDEA是非常好用的一个开发工具,怎么样才可以破解也是非常关键的问题,本文简单介绍破解方法. 第一种方式,我们进入以下网站http://idea.lanyus.com/ 这里要注意一 ...

  10. struct2面试准备

    二 工作流程1.客户端浏览器发出HTTP请求.2.根据web.xml配置,该请求被FilterDispatcher接收3.根据struts.xml配置,找到需要调用的Action类和方法, 并通过Io ...