贪婪匹配

贪婪匹配是指字符后面是*+?的时候,都是尽可能多的匹配,如果不想尽可能多的匹配,那么在这三个字符后面加?号即可,这样变成惰性匹配,按最少匹配。

ret = re.findall('ab??','dfaabbbdwofj')

print(ret)  #['a', 'a']

\d  匹配任何十进制数;它相当于类 [0-9]。
\D 匹配任何非数字字符;它相当于类 [^0-9]。
\s  匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。
\S 匹配任何非空白字符;它相当于类 [^ \t\n\r\f\v]。
\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]
\b  匹配一个特殊字符边界,比如空格 ,&,#等

注意:以前这些只能用来匹配单个字符,如果想匹配多个,后面要加适当的元字符

ret = re.findall('\d','dfaabbbdwof123j')
print(ret) #['1', '2', '3'] ret = re.findall('\d{3}','dfaabbbdwof123j')
print(ret) #['123'] ret = re.findall('\d+','dfaabbbdwof123j')
print(ret) #['123'] ret = re.findall('\d*','dfaabbbdwof123j')
print(ret) #['', '', '', '', '', '', '', '', '', '', '', '123', '', '']

分组( )

ret = re.search('(ab)(ty)','erwabtyyy')
print(ret.group()) #abty
#search返回的是匹配到的整个字符 ret = re.search('(ab)/(ty)*','erwab/tytyy')
print(ret.group()) #ab/tyty
#再次证明search返回的是匹配到的整个字符 ret = re.findall('(ab)(ty)+','erwabtyfewwpabtytyab')
print(ret) #[('ab', 'ty'), ('ab', 'ty')] 为什么后面有元字符+,却不匹配后面一个ty???
#findall默认只返回分组匹配到的字符,并且每个分组匹配到的字符用逗号隔开放在一个元组里面,作为一个整体 ret = re.findall('(ab)/(ty)+','erwabtyfewwpab/tytyab')
print(ret) #[('ab', 'ty')]
#再次证明findall默认只返回分组匹配到的字符,匹配规则中的其它字符不显示。 ret = re.findall('(?:ab)/(?:ty)+','erwabtyfewwpab/tytyab')
print(ret) #['ab/tyty'] 里面不再是一个元组了
#如果想让findall返回整个规则匹配到的所有内容,在小括号中加上?:即可,此时返回的就是所有内容。 #猜测:上面findall中(ty)后面的+没用可能是,这个元组不存储相同的元素。

Python:Day19 正则表达式补充的更多相关文章

  1. [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

    [python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...

  2. Python 进阶 - 正则表达式

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  3. python study - 正则表达式

    第 7 章 正则表达式 7.1. 概览 7.2. 个案研究:街道地址 7.3. 个案研究:罗马字母 7.3.1. 校验千位数 7.3.2. 校验百位数 7.4. 使用 {n,m} 语法 7.4.1. ...

  4. python使用正则表达式文本替换

    2D客户端编程从某种意义上来讲就是素材组织,所以,图片素材组织经常需要批量处理,python一定是最佳选择,不管是win/linux/mac都有一个简单的运行环境 举两个应用场景: 如果不是在某个文件 ...

  5. python的正则表达式 re

    python的正则表达式 re 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一 ...

  6. Python之正则表达式(re模块)

    本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 正则表达式(Regluar Expressions)又称规则 ...

  7. python/数据库操作补充—模板—Session

    python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...

  8. Python:正则表达式详解

    正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...

  9. 【Python】正则表达式纯代码极简教程

    <Python3正则表达式>文字版详细教程链接:https://www.cnblogs.com/leejack/p/9189796.html ''' 内容:Python3正则表达式 日期: ...

随机推荐

  1. js正整数正则表达式

    function testNumber(){ var yourinputValue=$("#yourinputId").val(); var reg = /^[1-9]\d*$/; ...

  2. 服务器端使用jstat定位GC问题的有关命令

    jstat命令可以查看堆内存各部分的使用量,以及加载类的数量. 命令的格式如下: jstat    [-命令选项]    [vmid]     [间隔时间/毫秒]      [查询次数]  注意!!! ...

  3. awesomium_v1.6.6_sdk 百度云下载地址

    awesomium的官网已经关闭很久了,所以找不到正规的下载地址. 而csdn上面的又收费.所以这里提供一个不收费的百度云的下载地址给大家. 不足就是不是1.7版本,所以对于某些有特殊用途的满足不了了 ...

  4. 钉钉扫码登录web网站

    钉钉扫码登录网站 前言  由于本公司前后台分离,这里主要讲述后台的实现逻辑与过程,前端相关的一略而过.前端我们采用的是把二维码内嵌到我们的网页中. 流程如下: 1.登录钉钉后台创建一个企业应用 2.根 ...

  5. split 分割 字符串(分隔符如:* ^ : | , .)

    [1]单个符号作为分隔符 String address="上海|上海市|闵行区|吴中路"; String[] splitAddress=address.split("\\ ...

  6. 堆栈的应用——用JavaScript描述数据结构

    栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底. 一.实现一个栈类Stack 基于堆栈的特性,可以用数组做线 ...

  7. ERP承接新后台优惠规则问题

    一.后台在哪配置优惠规则? 1.设置优惠时间段: 2.添加优惠活动: 关于自动和手动: 自动:创建后,ERP同步数据后即生效.     点餐,活动会自动生效,自动计算金额. 手动:创建后,ERP需要手 ...

  8. 智能POS正餐主副机模式FAQ(无桌台或桌台模块)

    1.无桌台 (1).如果是初次使用,首先检查是否是新建的机器号,新建的机器是默认关闭桌台的,需要到模块管理中开启. 2.无桌台模块 (1).是否在主副机开启连接上后重启主机与副机,且同步数据.

  9. coTurn测试程序之 turnutils_uclient

    接着对使用coTurn搭建的STUN/TURN服务使用turnutils_uclient程序测试其TURN服务是否正常. 直接连接服务测试服务是否正常.为保证测试使用的服务是TURN服务,在TURN服 ...

  10. Python基于皮尔逊系数实现股票预测

    # -*- coding: utf-8 -*- """ Created on Mon Dec 2 14:49:59 2018 @author: zhen "&q ...