re模块2
# 元字符+,*遇到?后就会变为贪婪匹配
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的更多相关文章
- npm 私有模块的管理使用
你可以使用 NPM 命令行工具来管理你在 NPM 仓库的私有模块代码,这使得在项目中使用公共模块变的更加方便. 开始前的工作 你需要一个 2.7.0 以上版本的 npm ,并且需要有一个可以登陆 np ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- ES6模块import细节
写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...
- Python标准模块--ContextManager
1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情. ...
- Python标准模块--Unicode
1 模块简介 Python 3中最大的变化之一就是删除了Unicode类型.在Python 2中,有str类型和unicode类型,例如, Python 2.7.6 (default, Oct 26 ...
- Python标准模块--Iterators和Generators
1 模块简介 当你开始使用Python编程时,你或许已经使用了iterators(迭代器)和generators(生成器),你当时可能并没有意识到.在本篇博文中,我们将会学习迭代器和生成器是什么.当然 ...
- 自己实现一个javascript事件模块
nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...
- 理解nodejs模块的scope
描述 原文档地址:https://docs.npmjs.com/misc/scope 所有npm模块都有name,有的模块的name还有scope.scope的命名规则和name差不多,同样不能有ur ...
- nodejs模块发布及命令行程序开发
前置技能 npm工具为nodejs提供了一个模块和管理程序模块依赖的机制,当我们希望把模块贡献出去给他人使用时,可以把我们的程序发布到npm提供的公共仓库中,为了方便模块的管理,npm规定要使用一个叫 ...
- 开始学nodejs——net模块
net模块的组成部分 详见 http://nodejs.cn/api/net.html 下面整理出了整个net模块的知识结构,和各个事件.方法.属性的用法 net.Server类 net.Socket ...
随机推荐
- excel 两列值匹配取另外一列值 INDEX MATCH 函数
=INDEX($D:$D,MATCH(K68,$C:$C,0))
- Oracle--sqlplus--常用命令
登陆:win+R输入sqlplus即可 如果前期没有用户可以输入sqlplus /nolog 记得sqlplus后有一个空格 --格式化命令 进行数据查询时,默认的方式排版会很乱,如果我们要解决这个 ...
- printf的封装与实现
1 UART通信协议 1.1 UART通信的物理连接 图1 UART的物理连接 1.2 逻辑电平 用电平表示逻辑1和逻辑0,逻辑1和逻辑0用来组织计算机层面的数据. 1.3 电平标准 根据通讯使用的电 ...
- 树莓派3b安装Windows10 Arm
感谢老外的这个项目:https://github.com/WOA-Project/WOA-Deployer-Rpi 还有这个:https://uupdump.ml/ 首先从https://uupdum ...
- apache启动错误:Could not reliably determine the server's fully qualified domain name
启动apache遇到错误:httpd: Could not reliably determine the server's fully qualified domain name [root@serv ...
- 找不到xml、找不到类
解决java.lang.ClassNotFoundException 解决 java.io.FileNotFoundException: class path resource [xxx.xml] ...
- oracle查询SQL优化相当重要
如果表中的时间字段是索引,那么时间字段不要使用函数,函数会使索引失效. 例如: select * from mytable where trunc(createtime)=trunc(sysdate) ...
- Android Studio SharedPreferences
Android 中最简单的数据存储方式 : SharedPreferences SharedPreferences 数据存储处理实际上时对一个个key——value 数据对的处理 使用SharedPr ...
- 114-PHP判断类变量是否相同
<?php class ren{ //定义人类 } class mao{ //定义人类 } $ren=new ren(); //实例化人类的对象 $ren_a=new ren(); //实例化人 ...
- 069-PHP数组下标
<?php $arr=array(98,'hello',67,'A',85,NULL); //定义一个数组 $x=0; //定义三个作为下标的变量 $y=3; $z=5; echo " ...