管道可以匹配多个正则表达式中的一个

>>>
>>> m=re.search(r'Batman|Tina Fey','Batman and Tina Fey')
>>> print(m.group())
Batman
>>> m=re.search(r'Batman|Tina Fey','Tina Fey and Batman')
>>> print(m.group())
Tina Fey
>>>

  问号表明它前面的字符或分组在这个模式中是可选的,匹配“零次或一次"

>>> batRegex=re.compile(r'Bat(wo)?man')
>>> m1=batRegex.search('I am a Batman')
>>> print(m1.group())
Batman
>>> m2=batRegex.search('I am a Batwoman')
>>> print(m2.group())
Batwoman
>>>

在上述正则表达式中wo是可选的,既可以匹配Batman,又可以匹配Batwoman

>>>
>>> phoneRegex=re.compile(r'(\d{3}-)?\d{3}-\d{4}')
>>> m1=phoneRegex.search('My phone number is 021-456-2345')
>>> print(m1.group())
021-456-2345
>>> m2=phoneRegex.search('My phone number is 456-2345')
>>> print(m2.group())
456-2345
>>>

上面的正则表达式匹配的电话号码可以带区号,也可以不带区号

  星号意味着“匹配零次或者多次”

>>>
>>> batRegex=re.compile(r'Bat(wo)*man')
>>> m=batRegex.search('I am a Batman')
>>> print(m.group())
Batman
>>> m=batRegex.search('I am a Batwoman')
>>> print(m.group())
Batwoman
>>> m=batRegex.search('I am a Batwowoman')
>>> print(m.group())
Batwowoman
>>>

  加号意味着“匹配一次或多次”

>>>
>>> batRegex=re.compile(r'Bat(wo)+man')
>>> m=batRegex.search('I am a Batwoman')
>>> print(m.group())
Batwoman
>>> m=batRegex.search('I am a Batwowoman')
>>> print(m.group())
Batwowoman
>>> m=batRegex.search('I am a Batman')
>>> m == None
True
>>>

  花括号匹配特定次数

(ha){2}匹配‘haha’

(ha){2,}匹配2次或更多次ha

(ha){.2}匹配0到2次ha

(ha){2.5}匹配2到5次ha

Python 正则表达式 匹配次数的更多相关文章

  1. [转载]Python正则表达式匹配反斜杠'\'问题

    转载自csdnblog:Python正则表达式匹配反斜杠'\'问题 在学习Python正则式的过程中,有一个问题一直困扰我,如何去匹配一个反斜杠(即“\”)? 一.引入 在学习了Python特殊字符和 ...

  2. Python: 正则表达式匹配反斜杠 "\"

    Python正则表达式匹配反斜杠 "\" eg: >>>a='w\w\w' 'w\\w\\w' #  打印出来的 "\\" 被转义成 一个反斜 ...

  3. python 正则表达式匹配IP地址

    一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...

  4. python正则匹配次数,贪婪和非贪婪

    贪婪模式  {m,n}表示匹配子串的次数>=m and <=n,再此分为内匹配次数尽可能的多 贪婪模式  {,n}表示 >=0 and <=n 贪婪模式  {m,} 表示> ...

  5. 【python之路38】Python正则表达式匹配反斜杠“\”

    一.引入 在学习了Python特殊字符和原始字符串之后,我觉得答案应该是这样的: 1)普通字符串:'\\'2)原始字符串:r'\'但事实上在提取诸如“3\8”反斜杠之前的数字时,我屡次碰壁,始终得不到 ...

  6. Python正则表达式匹配猫眼电影HTML信息

    爬虫项目爬取猫眼电影TOP100电影信息 项目内容来自:https://github.com/Germey/MaoYan/blob/master/spider.py 由于其中需要爬取的包含电影名字.电 ...

  7. Python: 正则表达式匹配多行,实现多行匹配模式

    1) 点 (.)去匹配任意字符的时候,不能匹配换行符 在这个模式中(?:.|\n)是指定了一个非捕获组(仅仅用来做匹配,部能通过单独捕获或者编号的组) 2) re.DOTALL re.compile( ...

  8. Python正则表达式匹配日期与时间

    #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'Randy' import re from datetime import da ...

  9. Python 正则表达式 匹配任意字符

    .(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符 >>> >>> r=re.compile(r'.*')>>> ...

随机推荐

  1. python入门之paramiko模块

    paramiko用于实现ssh远程连接服务器执行相关操作. paramiko与之依赖模块cryptography最好版本相同,不然可能执行程序会出错. 一.ssh连接服务器执行命令 import pa ...

  2. 微信支付配置参数:支付授权目录、回调支付URL

    一.开通微信支付的首要条件是:认证服务号或政府媒体类认证订阅号(一般认证订阅号无法申请微信支付) 二.微信支付分为老版支付和新版支付,除了较早期申请的用户为老版支付,现均为新版微信支付. 三.公众平台 ...

  3. Struts2 源码分析-----Hello world

    今天第一天学习struts2,没学过怎么办,那当然是helloworld.感觉嘛,学习的基本流程都差不多,就是helloworld,开发环境,然后就是逐个按照知识点打demo,打着打着你就会发现str ...

  4. leetcode85 Maximal Rectangle

    思路: 分别按行拆分后将这一行之前的每列叠加起来,然后使用leetcode84https://www.cnblogs.com/wangyiming/p/9620942.html的思路计算. 实现: # ...

  5. Django组件:用户认证组件

    一丶用户认证 1.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: (1).authent ...

  6. cron 任务执行表达式

    1.来源 开始我还不知道cron到底来源于哪里,不求甚解的我也没做过多了解,现在突然用到所以写一下. cron计划任务  其实只是linux 一个执行计划的一个工具或者执行程序. 在Linux系统中, ...

  7. javascript数组属性及方法

    数组元素的添加 1. arrayt.splice(index,howmany,item1,.....,itemX) 向/从数组中添加/删除项目,然后返回被删除的项目 2. array.unshift( ...

  8. bank conflct 一句话总结

    由于最新的多播模式区别于原来的广播模式,原来同一个warp不同线程访问同一个bank的相同地址不再是bank conflict, 现在总结为:只要同一个 warp 的不同线程会访问到同一个 bank ...

  9. 分布式缓存memcached介绍,win7环境安装,常用命令set,get,delete,stats, java访问

    一.memcached是什么? 二.memcached不互相通信的分布式 三.安装步骤 四.本文介绍的命令主要包括: 存入命令(Storage commands) 取回命令(Retrieval com ...

  10. Entity Framework --Entity SQL注意事项

    Entity SQL 是 ADO.NET 实体框架 提供的 SQL 类语言,用于支持 实体数据模型 (EDM).Entity SQL 可用于对象查询和使用 EntityClient 提供程序执行的查询 ...