Python基础最难知识点:正则表达式(使用步骤)
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
正则表达式,简称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基础最难知识点:正则表达式(使用步骤)的更多相关文章
- python基础语法及知识点总结
本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...
- Python基础(9)--正则表达式
正则表达式是一个很有用的工具,可处理复杂的字符匹配和替换工作.在Python中内置了一个re模块以支持正则表达式. 正则表达式有两种基本的操作,分别是匹配和替换. 匹配就是在一个文本字符串中搜索匹配一 ...
- Day8 Python基础之遗漏知识点(六)
1. 遗漏知识点 深.浅拷贝: http://www.cnblogs.com/yuanchenqi/articles/5782764.html a=b: 浅拷贝: 深拷贝 集合(set) 集合的定 ...
- python 基础 8.0 regex 正则表达式--常用的正则表达式
一. python 中常用的正则表达式 二. 正则表达式的网站,可以进行在线正则匹配 https://regex101.com/ 1. 使用方法及正则介绍 1> ‘.’ 匹 ...
- python基础(四)——正则表达式
#!/usr/bin/python # -*- coding: utf-8 -*- import re print(re.match('www', 'www.runoob.com').span()) ...
- python基础篇---列表---知识点回顾
列表:数据的集合,里面可以放任何的数据类型,可进行增删改查等操作 有序列表功能(index是列表的索引值): ①创建:用 [] 表示,里面添加元素,如n2 = [1,2,4,5,5]: 或者 ...
- python基础的一些知识点
ord 将字符转换为ASCIIchr 将ASCII转换为字符 元组不可修改,当只有一个元素时,要添加一个逗号集合不可修改,元素无序,不能重复 列表.元组.字典都是可迭代对象,就是可以遍历的对象多层循环 ...
- python基础一 day5 知识点
Unicode转化为gbk和utf-8 表现形式:str转化为bytes
- Python基础(12)--模块
本文地址:http://www.cnblogs.com/archimedes/p/python-modules.html,转载请注明源地址. 模块简介 如果你退出 Python 解释器重新进入,以前创 ...
随机推荐
- python生成批量格式化字符串
在学习tensorflow管道化有关操作时,有一个操作是先生成一个文件名队列.在书上使用了这样的代码: filenames = ['test%d.txt'%i for in in range(1,4) ...
- JPS/JPS+ 寻路算法
目录 概念 强迫邻居(Forced Neighbour) 跳点(Jump Point) JPS 寻路算法(Jump Point Search) 实现原理 示例过程 JPS+(Jump Point Se ...
- cb15a_c++_vector容器的自增长_每次增加百分之50
cb15a_c++_vector容器的自增长_每次增加百分之50每次自动容量代销扩充,增加百分之50_for windows C++,vector是用数组做出来的->数组的缺点和优点优点:具有下 ...
- Windows 10 WSL 2.0安装并运行Docker
在Windows 10 2004版本,微软更新WSL到了2.0,WSL 2.0已经拥有了完整的Linux内核!今天来测试一下,是否可以安装docker! 一.开启WSL 以管理员运行Powershe ...
- 005.OpenShift访问控制-权限-角色
一 Kubetcl namespace 1.1 namespace描述 Kubernetes namespace提供了将一组相关资源组合在一起的机制.在Red Hat OpenShift容器平台中,p ...
- js银行卡四个数字一个空格
!function () { document.getElementById('bankCard').onkeyup = function (event) { var v = this.value; ...
- Spring中的AOP(二)
2.5 Spring的织入 在上一篇文章中,我们介绍了Pointcut.Advice.Advisor三个必要模块,剩下的工作就是把它们拼装起来,也就是织入过程.在Spring中,使用类org.spri ...
- 大型ECShop安装搬家升级错误问题最全攻略
[引子] 最近将ECShop框架网站从租用服务器搬家至阿里云,虽然模块及功能上已经被修改的面目全非了,但基础部分还在. 在这个过程中遇到了很多的WARNING与ERROR,解决方案如下. [环境] 服 ...
- awk 命令使用入门
Linux 下处理和分析文本文件内容,AWK 命令是一个强有力的工具.特别是文件内容是以行和列的形式排版的时候,AWK 就是命令行界的 Excel 啊! 简单的 awk 命令可以直接在命令行中使用,复 ...
- IDEA SonarLint安装及使用
SonarLint插件安装IDEA菜单栏选择File->Settings,左边栏选择Plugins 在线安装选择Browse repositories,搜索Sonar,选择SonarLint进行 ...