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 ...
随机推荐
- 图片与byte相互转换
一.图片转byte public byte[] ImageToByte() { string imagefile = @"http://192.168.0.212/pass/T-1.jpg& ...
- 吴裕雄--天生自然java开发常用类库学习笔记:正则表达式
public class RegexDemo01{ public static void main(String args[]){ String str = "1234567890" ...
- IIC协议解析
(1)概述 I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距 ...
- Linux镜像源 国内列表
(一).企业站 1.搜狐:http://mirrors.sohu.com/ 2.网易:http://mirrors.163.com/ 3.阿里云:http://mirrors.aliyun.com/ ...
- 软件管理-RPM命令管理:安装升级与卸载
1.包名与包全名 包名 : 操作已经安装的软件包时,使用包名:系统会搜索var/lib/rpm中的数据库 包全名: 操作的包时没有安装的软件包时,使用包全名,而且注意路径 2.RPM安装 切换到光盘p ...
- UVA - 1608 Non-boring sequences (分治)
题意:如果一个序列的任意连续子序列中至少有一个只出现一次的元素,则称这个序列式为non-boring.输入一个n(n≤200000)个元素的序列A(各个元素均为109以内的非负整数),判断它是否无聊. ...
- Java自学-集合框架 Comparator和Comparable
Java Comparator和Comparable 步骤 1 : Comparator 假设Hero有三个属性 name,hp,damage 一个集合中放存放10个Hero,通过Collection ...
- oracle学习笔记(4)
4.oracle数据库的启动流程 windows操作系统 启动监听: lsnrctl start; 启动数据库实例:oradim-startup-sid 实例名 linux系统 启动监听:lsnrct ...
- Django 初体验
Django 依赖的python 基础环境安装: https://www.runoob.com/django/django-install.html Django安装参考官网文档: https://d ...
- js(JavaScript)使用${pageContext.request.contextPath}报错
前几天写程序在js文件中用到了${pageContext.request.contextPath}然后一直报错,没有办法post到服务器,原来js把这个当成字符串了,一直以为他是jquery的函数! ...