# 元字符+,*遇到?后就会变为贪婪匹配
print(re.findall('abc+?','abcccccc')) #['abc']
print(re.findall('abc*?','abcccccc')) #['ab']
print(re.findall('abc{1,4}','abcccabc')) #['abccc', 'abc']
print(re.findall('abc{1,4}?','abcccabc')) #['abcc', 'abc']
#---------------------------------------------------------------------
#元字符之字符集[] 在字符集里面有功能的字符 - ^ \
print(re.findall("[abc]","sdfgbahjkkk"))
#若是字符集的前后没有字母,就会分别匹配a,b,c ['b', 'a'],否在就字符集里选择一个字母和外面的连接使用
print(re.findall("a[a-z]","fwefaefewaasfwe")) #['ae', 'aa']
print(re.findall("a[.*+]","a.b*c+")) #在字符集里的符号就是普通符号 ['a.'] print(re.findall("[^ab]","fgddab")) #['f', 'g', 'd', 'd']
print(re.findall("[1-9]","vsd1fdv2sdvsd23")) #['1', '2', '2', '3']
print(re.findall("d[1-9]","vsd1fdv2sdvsd23")) #['d1', 'd2']
print(re.findall("[\d]","af1fsdf2ffsf1")) #['1', '2', '1']
print(re.findall("[1-9]","af1fsdf2ffsf1")) #['1', '2', '1']
print(re.findall("[^\W1-9a-z]","f我1e@f们21在ew2一%&e起1f"))  #['我', '们', '在', '一', '起']
#^\W 就是去掉符号 再去掉数字和字母
#转义字符 \
#反斜杠后面跟元字符会失去特殊功能 如\*
print(re.findall("\*","vdv*vdd"))
print(re.findall("\.","vdf.v*vdd"))
print(re.findall("\?","vd?f.v*vdd"))
print(re.findall("\^","vdf.v*vd^d"))
print(re.findall("\[ab]","vdf.v*v[ab]dd"))
print(re.findall("\{2,3}","vdf.v*v{2,3}dd"))
print(re.findall("\$","vdf.v*v$dd"))
print(re.findall("\+","vdf.v+*vdd"))
反斜杠后边跟元字符去除特殊功能,比如\.
反斜杠后边跟普通字符实现特殊功能,比如\d \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 匹配一个特殊字符边界,比如空格 ,&,#等
#反斜杠后面跟普通字母可以实现特殊功能 如\d  \w  \s \b
print(re.findall("\d","12f345fs56dsfs")) #只匹配数字
print(re.findall("[1-9]","12f345fs56dsfs"))
print(re.findall("[^\D]","12f345fs56dsfs"))
print(re.findall("[^a-z]","12f345fs56dsfs"))
#---------------------------------------------------------------------
print(re.findall("\D","12f345fs56dsfs")) #只匹配字母
print(re.findall("[a-z]","12f345fs56dsfs"))
print(re.findall("[^1-9]","12f345fs56dsfs"))
print(re.findall("[^\d]","12f345fs56dsfs"))
print(re.findall("\w","12f345fs56dsfs")) #匹配所有的字母和数字
print(re.findall("[^\W]","12f345fs.,56dsfs"))
print(re.findall("[1-9a-z]","12f345fs56dsfs"))
#---------------------------------------------------------------------
print(re.findall("\W","12f345f;'s56dsfs")) #匹配符号
print(re.findall("[^\w]","12f345fs,/56dsfs"))
print(re.findall("[^1-9a-z]","12f345fs,/56dsfs"))
#s 匹配空格
print(re.findall("[\s]","a bcd")) #[' ']
print(re.findall("[^\s]","abcd")) #['a', 'b', 'c', 'd']
print(re.findall("\S","abc d")) #['a', 'b', 'c', 'd']
print(re.findall("[^\s]","ff fse "))  #除了空格 ['f', 'f', 'f', 's', 'e']
print(re.findall("v\\\\h","sdv\hyu")) #匹配斜杠 ['v\\h']
print(re.findall(r"v\\h","sdv\hyu")) #匹配斜杠 ['v\\h']
# \b表示匹配一个特殊字符边界
print(re.findall(r"ber\b","sfsber\hj")) #匹配\b ber
print(re.findall(r"\bber","sfs:berhj")) #匹配\b ber
 
 

re模块2的更多相关文章

  1. npm 私有模块的管理使用

    你可以使用 NPM 命令行工具来管理你在 NPM 仓库的私有模块代码,这使得在项目中使用公共模块变的更加方便. 开始前的工作 你需要一个 2.7.0 以上版本的 npm ,并且需要有一个可以登陆 np ...

  2. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  3. ES6模块import细节

    写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...

  4. Python标准模块--ContextManager

    1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情. ...

  5. Python标准模块--Unicode

    1 模块简介 Python 3中最大的变化之一就是删除了Unicode类型.在Python 2中,有str类型和unicode类型,例如, Python 2.7.6 (default, Oct 26 ...

  6. Python标准模块--Iterators和Generators

    1 模块简介 当你开始使用Python编程时,你或许已经使用了iterators(迭代器)和generators(生成器),你当时可能并没有意识到.在本篇博文中,我们将会学习迭代器和生成器是什么.当然 ...

  7. 自己实现一个javascript事件模块

    nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...

  8. 理解nodejs模块的scope

    描述 原文档地址:https://docs.npmjs.com/misc/scope 所有npm模块都有name,有的模块的name还有scope.scope的命名规则和name差不多,同样不能有ur ...

  9. nodejs模块发布及命令行程序开发

    前置技能 npm工具为nodejs提供了一个模块和管理程序模块依赖的机制,当我们希望把模块贡献出去给他人使用时,可以把我们的程序发布到npm提供的公共仓库中,为了方便模块的管理,npm规定要使用一个叫 ...

  10. 开始学nodejs——net模块

    net模块的组成部分 详见 http://nodejs.cn/api/net.html 下面整理出了整个net模块的知识结构,和各个事件.方法.属性的用法 net.Server类 net.Socket ...

随机推荐

  1. 05.Delphi接口的多重继承深入

    由于是IInterface,申明了SayHello,需要由继承类来实现函数,相对于03篇可以再精简一下 unit uSayHello; interface uses SysUtils, Windows ...

  2. flutter安装中的一些方法

    1.配置flutter环境变量 进入终端 vim ~/.bash_profile export ANDROID_HOME=~Library/Android/sdk export PATH=$PATH: ...

  3. Phoenix5.0的部署

    官网下载编译好的二进制包 http://phoenix.apache.org/download.html2 上传并解压到指定目录, 再修改目录名称 tar -zxvf apache-phoenix-5 ...

  4. GNS3 ip route 命令解析

    ip route 120.94.0.0 255.254.0.0 172.16.252.1ip route 192.168.0.0 255.255.0.0 10.10.10.119ip route 21 ...

  5. 被疯狂吐槽的iPhoneXR屏幕真如传言中的那么差吗?

    在双十一期间,最受果粉关注的电商平台不是天猫,也不是京东,而是拼多多!原因很简单,拼多多疯狂给出iPhone的各种超低价格,直接压制了竞争对手.以iPhone XR为例,依据容量不同,价格分别为558 ...

  6. 网卡绑定多个ip

    现在我的树莓派上的wlan0的IP是192.168.31.237,之前通过双绞线连接时候eth0的ip是192.168.31.50 . 我就想啊,能不能把wlan0的ip设置成50.......... ...

  7. SpringBoot#InitBinder

    __震惊!!我的天啦,OMG!! 1. initBinder对我而言的价值在于,通过传统表单post数据到后端的controller时候,数据类型的自动转换.比如前端页面填写一个日期字符串,通过Ini ...

  8. 一百零七、SAP的OO-ALV之一,新建程序

    一.来带SE38模块,新建一个Z_TIANPAN_20190807_OOALV的本地程序 二.设置一个标题,点击对勾 三.选择保存为本地对象 我们下一篇来写创建屏幕

  9. linux命令之strace简单使用

    strace是什么 strace是一个可用于诊断.调试和教学的Linux用户空间跟踪器.我们用它来监控用户空间进程和内核的交互,比如系统调用.信号传递.进程状态变更等. 使用方式 strace 使用帮 ...

  10. 创建简单web项目

    Intellij Idea直接安装(可根据需要选择自己设置的安装目录),jdk使用1.6/1.7/1.8都可以,主要是配置好系统环境变量,tomcat7上tomcat的官网下载压缩包解压即可. 一.创 ...