注意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

Google

实战小例子

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-正则表达式及实战小例子相关推荐

  1. python正则表达式案例_Python正则表达式使用经典实例

    regex=ur"" #正则表达式 match = re.search(regex, subject) if match: # match start: match.start() ...

  2. python正则表达式案例_Python正则表达式--实例秘籍

    正则表达式中有空格时,所获得的列表内容不会将其分开,视为一个元素,可以实现一下例子自行感受(在写爬虫时要注意,一点差异都会很难找到错误的地方) import re pattern = re.compi ...

  3. python elasticsearch查询_python 查询Elasticsearch的小例子

    #!/usr/bin/env python # -*- coding: utf-8 -*- from sfo_common.agent import Agent from sfo_common.imp ...

  4. python装饰设备_Python: 装饰器的小例子

    折腾了一天的装饰器,貌似理解了其中的一点点...#!/usr/bin/env python3 #coding=utf-8 import getpass from netmiko import Conn ...

  5. [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 ...

  6. python正则匹配_Python正则表达式初识(五)

    原标题:Python正则表达式初识(五) 正则表达式的内容很丰富,今天小编继续给大家分享Python正则表达式的基础知识.今天要给大家的讲的特殊字符是竖线"|".竖线"| ...

  7. python正则表达式操作指南_Python正则表达式操作指南

    原文作者:A.M. Kuchling (amk@amk.ca) 翻译人员:FireHare 校对人员:Leal 适用版本:Python 1.5 及后续版本 摘要 本文是通过Python的 re 模块来 ...

  8. python正则表达式代码_python正则表达式的使用(实验代码)

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...

  9. python findall函数_Python正则表达式

    什么是正则表达式 •正则表达式是字符串处理的有力工具,比字符串自身提供的方法提供了更强大的处理功能. •例如判断一个字符串是否是合法的Email地址,可以通过构造一个规则(正则表达式),去判断字符串是 ...

  10. python 正则表达式方法_Python正则表达式一: 基本使用方法

    学习python的正则表达式,主要有两个方面学习: 第一,学习如何写正则表达式,主要是掌握其语法规范.正则表达式的语法规范是通用的,对各种开发语言都是一致的. 第二,学习如何使用正则表达式,也就是掌握 ...

最新文章

  1. c++ 私有内部类_C++类成员的访问权限以及类的封装
  2. java test 用法_Java的testcase用法
  3. boost::hana::remove用法的测试程序
  4. java main 声明_Java中main方面面试题
  5. 设计模式4-创建型模式-Prototype模式
  6. 春招已近,这份GitHub万星的ML算法面试大全请收下
  7. Windows XP下Service的编程入门[1]
  8. 手机pdf格式怎么弄_pdf怎么转html?pdf转html技能分享给你
  9. android 属性动画 补间动画,每日一道面试题(第7期)---Android补间动画与属性动画的区别...
  10. 散热器老化引起电脑死机
  11. 反射根据每一列的列名获取List T 中的列值
  12. python docx 合并文档 图片_使用python抓取大量简历文档内数据(word:docx;pdf;图片等)输出表格文件...
  13. jQury+Ajax与C#后台交换数据
  14. [经验教程]Windows电脑上查看ip地址的cmd命令是什么及如何利用CMD查看本机IP地址?
  15. 电子招标是未来的招投标趋势
  16. [深度数据]·深度学习数据集大全
  17. 识别车牌是什么神经网络,bp神经网络车牌识别
  18. 淘宝APP用户行为分析
  19. 从win10体验到重装win8
  20. 不间断:即使被刺破,新的软电子设备也不会损坏

热门文章

  1. Python图表绘制:matplotlib绘图库入门
  2. Java SE基础语法
  3. I/O接线盒标准Deltav VE4003S2B6 DeltaV输入输出模块 DCS卡件
  4. DS200TBCAG1AAB可控硅模块工控DCS系统模块卡件自动化设备
  5. 2. 掀起接口测试的盖头-HTTP初窥(一)
  6. 天津市对口升学计算机类考试题,对口升学信息技术(计算机)类2017年专业课考试大纲...
  7. php升级版本后关于Mbstring、OpenSSL等一些扩展都无法开启的状况
  8. JDBC归还连接之适配器模式
  9. BA-地源热泵系统(视频)
  10. 嵌入式~PCB专辑27