python正则表达式案例_Python-正则表达式及实战小例子
注意Python的字符串本身也用'\'转义,所以要特别注意,一般我们都建议使用Python的r前缀,就不用考虑转义的问题了
1,行的起始
例子:匹配‘cat’ 开头
patt=re.compile(r'^cat') # re.compile 返回一个正则表达式对象
表示匹配以c作为一行的第一个字符,后面跟着a,后面跟着t
所以'vocative'就不会被匹配到,原因是因为cat在字符的里面
2,行的结尾
importre
sentence='''Hi Jack:\n
Python is a beautiful language\n
BR'''patt=re.compile(r'(BR|Bestregards)$')
m=re.search(patt,sentence)ifm :print 'match'
else:print 'not match'
>>match
要查找sentence中是否以“BR或Bestregards” 结尾
3 ,单词的边界
正则里面有2个特殊字符\b and \B来匹配单词的边界 :
\b 匹配的模式是一个单词的边界(不论这个单词的前面是有字符还是没有字符)
\B 匹配出现在一个单词中间的模式
例如:
the #匹配包含有'the'的字符串
\bthe #匹配任何以'the'开始的字符串
\bthe\b #仅仅匹配单词'the'
\Bthe #匹配任意包含'the'但不以'the'开头的单词
4,字符组
比如我们需要匹配'grey'或者'gray'的时候,怎么办,可以用正则的[]来表示,gr[ea]y,表示先找到g,然后找到r,然后找到e或者a,最后是一个y
patt=re.compile(r'gr[ea]y')#意思就是grey 或者gray都是可以匹配上的
5,多选结构
我们可以用'|'来匹配任意子表达式,'|'是一个非常简便的元字符,它的意思是"或",通过它我们能把不同的子表达式组合成一个总的表达式,比如'am'|'pm'就是能够同时匹配其中任意一个的正则表达式,回头再看上面的例子'gr[ea]y',其实能写成'grey|gray',或者'gr(e|a)y'
6、可选项元素
'?' 表示可选项,问号跟在什么后面就表示什么是可选的
例如:6月4日,可能写成'June'也可以写成'Jun',而且日期也有可能写作'fourth'或者'4th'或者4,这个时候就可以写成June?(fourth|4(th)?),代表了e是可选的,th是可选的,可有可无都表示4号
7,重复出现+,表示紧邻元素重复出现一次或者多次,至少出现一次,否则返回失败;
*,表示紧邻元素重复出现0次或者多次,允许出现0次;
例如:
a*表示0个或者多个a,所以为0的时候,就是空字符
a+表示1个或者多个a,所以a至少要有1次
8,匹配重复的次数次数用{}里面的数字来表示
例如:patt=re.compile(r'([1-9]{3})') 就表示匹配1-9之间的数字,且这个数字只能出现3次,str='123str' ,就可以匹配上,而str1='2str1'就不能匹配,如果想匹配上要这么写patt1=re.compile(r'([1-9]{1-3})'),1-9数字出现1次或2次或3次
9、排除型字符组
当^在字符组的外面的时候"表示一个行的开头"
当^在字符组的内部(而且是必须紧接着字符组的第一个方括号之后),它就是一个元字符,表示排除型
例如:找出字母g后面的字母不是u
importre
words=['gold','','Sogu','Guess']
patt=re.compile(r'.*g[^u]') #‘.’匹配任意一个字符,'*'匹配0个或多个字符,g后面不是ufor w inwords:
m=re.match(patt,w)ifm:print w
>>
gold
实战小例子
1,设计一个正则来过滤一个字符串序列中的10到59
import re
patt=r'[1-5][0-9]'
lis=[10,20,30,40,2,3,59,60,'aa','3aaa']
match=re.findall(patt,str(lis))
if match:
print(match)
结果:
['10', '20', '30', '40', '59']
2,过滤字符串中的只含2个字符的字母,并且第一个字母是大写A或B或C
patt=r'[A-C][A-Z a-z]'
3,过滤一个字符串中的含3个字母的独立字符
例如:比如这样的一个字符串'xy,1,2,?,123@sohu,Ab,w1,Cz,xyh,abc',只想过滤出来xyh,abc 这样的
patt=r'/b[a-z A-Z]{3}/b' #/b 单词的边界
4、过滤一个字符串中的含3个字母的字符,并且最后一个字母是z
patt=r'/b[a-z A-Z][a-z A-Z][Z]/b'
5,过滤正确的24小时时间制
importre
time='10:00,99:90,8:00,19:19:14:00pm,5:xm,6,00,8:0923:23pm,29:19pm,23:59'patt= r'\b([01]?[0-9]|2[0-4])(:)([0-5][0-9])'match=re.findall(patt,time)ifmatch:print([''.join(x)for x in match])
执行结果:
['10:00', '8:00', '19:19', '14:00', '8:09', '23:59']
python正则表达式案例_Python-正则表达式及实战小例子相关推荐
- python正则表达式案例_Python正则表达式使用经典实例
regex=ur"" #正则表达式 match = re.search(regex, subject) if match: # match start: match.start() ...
- python正则表达式案例_Python正则表达式--实例秘籍
正则表达式中有空格时,所获得的列表内容不会将其分开,视为一个元素,可以实现一下例子自行感受(在写爬虫时要注意,一点差异都会很难找到错误的地方) import re pattern = re.compi ...
- python elasticsearch查询_python 查询Elasticsearch的小例子
#!/usr/bin/env python # -*- coding: utf-8 -*- from sfo_common.agent import Agent from sfo_common.imp ...
- python装饰设备_Python: 装饰器的小例子
折腾了一天的装饰器,貌似理解了其中的一点点...#!/usr/bin/env python3 #coding=utf-8 import getpass from netmiko import Conn ...
- [Spark][Hive][Python][SQL]Spark 读取Hive表的小例子
[Spark][Hive][Python][SQL]Spark 读取Hive表的小例子 $ cat customers.txt 1 Ali us 2 Bsb ca 3 Carls mx $ hive ...
- python正则匹配_Python正则表达式初识(五)
原标题:Python正则表达式初识(五) 正则表达式的内容很丰富,今天小编继续给大家分享Python正则表达式的基础知识.今天要给大家的讲的特殊字符是竖线"|".竖线"| ...
- python正则表达式操作指南_Python正则表达式操作指南
原文作者:A.M. Kuchling (amk@amk.ca) 翻译人员:FireHare 校对人员:Leal 适用版本:Python 1.5 及后续版本 摘要 本文是通过Python的 re 模块来 ...
- python正则表达式代码_python正则表达式的使用(实验代码)
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...
- python findall函数_Python正则表达式
什么是正则表达式 •正则表达式是字符串处理的有力工具,比字符串自身提供的方法提供了更强大的处理功能. •例如判断一个字符串是否是合法的Email地址,可以通过构造一个规则(正则表达式),去判断字符串是 ...
- python 正则表达式方法_Python正则表达式一: 基本使用方法
学习python的正则表达式,主要有两个方面学习: 第一,学习如何写正则表达式,主要是掌握其语法规范.正则表达式的语法规范是通用的,对各种开发语言都是一致的. 第二,学习如何使用正则表达式,也就是掌握 ...
最新文章
- c++ 私有内部类_C++类成员的访问权限以及类的封装
- java test 用法_Java的testcase用法
- boost::hana::remove用法的测试程序
- java main 声明_Java中main方面面试题
- 设计模式4-创建型模式-Prototype模式
- 春招已近,这份GitHub万星的ML算法面试大全请收下
- Windows XP下Service的编程入门[1]
- 手机pdf格式怎么弄_pdf怎么转html?pdf转html技能分享给你
- android 属性动画 补间动画,每日一道面试题(第7期)---Android补间动画与属性动画的区别...
- 散热器老化引起电脑死机
- 反射根据每一列的列名获取List T 中的列值
- python docx 合并文档 图片_使用python抓取大量简历文档内数据(word:docx;pdf;图片等)输出表格文件...
- jQury+Ajax与C#后台交换数据
- [经验教程]Windows电脑上查看ip地址的cmd命令是什么及如何利用CMD查看本机IP地址?
- 电子招标是未来的招投标趋势
- [深度数据]·深度学习数据集大全
- 识别车牌是什么神经网络,bp神经网络车牌识别
- 淘宝APP用户行为分析
- 从win10体验到重装win8
- 不间断:即使被刺破,新的软电子设备也不会损坏
热门文章
- Python图表绘制:matplotlib绘图库入门
- Java SE基础语法
- I/O接线盒标准Deltav VE4003S2B6 DeltaV输入输出模块 DCS卡件
- DS200TBCAG1AAB可控硅模块工控DCS系统模块卡件自动化设备
- 2. 掀起接口测试的盖头-HTTP初窥(一)
- 天津市对口升学计算机类考试题,对口升学信息技术(计算机)类2017年专业课考试大纲...
- php升级版本后关于Mbstring、OpenSSL等一些扩展都无法开启的状况
- JDBC归还连接之适配器模式
- BA-地源热泵系统(视频)
- 嵌入式~PCB专辑27