# 元字符+,*遇到?后就会变为贪婪匹配
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. 035、Java中自增之++在后面的写法

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  2. Spark Storage 模块

    http://jerryshao.me/architecture/2013/10/08/spark-storage-module-analysis/ 大神写的太好了,我就不重复造轮子了. Spark ...

  3. 0101-ioc

    背景 ioc是spring的基础,即控制反转.springboot基于注解使用ioc. ioc spring称所有被管理的对象为bean, spring ioc主要通过描述的方式完成3类bean的管理 ...

  4. Java 文件

    章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...

  5. Linux镜像源 国内列表

    (一).企业站 1.搜狐:http://mirrors.sohu.com/ 2.网易:http://mirrors.163.com/ 3.阿里云:http://mirrors.aliyun.com/ ...

  6. 定义一个共享数据块DB1 在DB1中定义一个数组 用程序 访问数据里面的某一个成员或者地址连续的成员

    提纲 : 定义一个共享数据块 DB1 在DB1 中定义数组 用SFC21 实现 实现全部数组元素的赋一样的值 实现 给数组中的某一个元素赋值 实现 对数组中的全部元素赋值 实现将数组中的某个 或者 某 ...

  7. 指令——mv

    一个完整的指令的标准格式: Linux通用的格式——#指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项,操作对象也可以是多个. 指令:mv   (move,移动,剪切) 作用 ...

  8. 九十六、SAP中ALV事件之九,显示功能按钮栏中显示ALV加强工具栏

    一.排查了很久,终于找到问题所在.把问题解决了,代码如下: 二.运行效果如下 三.试一试,标准功能都可以用 完美

  9. 096-PHP循环使用next取数组元素

    <?php function return_item($arr,$num=0){ //定义函数 for($i=0;$i<$num;$i++){ //循环向前移动数组指针 next($arr ...

  10. 《新标准C++程序设计》3.5(C++学习笔记8)

    常量对象和常量成员函数 一.常量对象 如果希望某个对象的值初始化后就再也不被改变,则定义该对象时可以在前面加const关键字,使之成为常量对象. class CDemo { private: int ...