常用模块 re模块与正则表达式
re模块
正则:
正则就是用一些具有特殊含义的符号组合到一起(称之为正则表达式)来描述字符或字符串的方法。或者说:正则就是用描述一类事物的规则。(在python中) 它内嵌在python中,并通过re模块来实现。正则表达式模式被编译成一系列的字节码,然后用C编写的匹配引擎执行。
二、常用匹配模式(元字符)
要先导入re模块,配合正则表达式:、 import re \w:匹配字母数字及下划线
print(re.findall('\w','ajllhs_127sji%&^h_9'))
#打印结果:
['a', 'j', 'l', 'l', 'h', 's', '_', '', '', '', 's', 'j', 'i', 'h', '_', ''] \W :匹配非字母数字下划线
print(re.findall('\W','shuk*&%^-_=|sjf98'))
#打印结果
['*', '&', '%', '^', '-', '=', '|'] \s:匹配任意空白字符,等价于[\t\n\f\r]
print(re.findall('\s',' \n6si(*-=\rj8hs*%#\t'))
#打印结果
[' ', '\n', '\r', '\t'] \S 匹配任意非空白字符
print(re.findall('\S',' r\r4$^*(\njsh\t@!'))
#打印结果
['r', '', '$', '^', '*', '(', 'j', 's', 'h', '@', '!'] \d匹配任意数字等价于[-]
print(re.findall('\d','js&*\r89$46#0\'/j'))
#打印结果
['', '', '', '', ''] \D匹配任意非数字
print(re.findall('\D','js&*\r89$46#0\'/j'))
#打印结果
['j', 's', '&', '*', '\r', '$', '#', "'", '/', 'j'] \A 匹配字符串的开始
print(re.findall('\Aada','123ada sijhada'))
#打印结果:[] 以ada为字符串的开始, 没有则给出一个空列表
print(re.findall('\Aada','ada12ada sijhada'))
#打印结果 ['ada'] 只提取开头的 ada,之后再有的都不会提取,因为后面的都不是以ada开头了。 一般\A不用, 而用^来代替
print(re.findall('^ada','123ada sijhada'))
#打印结果:[] 以ada为字符串的开始, 没有则给出一个空列表, 效果等同于print(re.findall('\Aada','123ada sijhada')) \Z 匹配字符串结束,如果存在换行,只匹配到换行钱结束的字符串
print(re.findall('nb\Z','adaxjshi&*)12sbw('))
打印结果为 [ ] 因为不是以nb结尾的字符串 print(re.findall('nb\Z','adaxjshi&*)12nbnbnb'))
#打印结果为 ['nb'] 是以nb结尾的,且不关里面有多少个nb 只取结尾的那个nb \Z一般也不用而是用$来代替用法同\Z 一米一样
print(re.findall('nb$','adaxjshinbnbnb'))
#打印结果 ['nb'] \n 匹配换行符
print(re.findall('\n','sh\n268*&()kl\n'))
#打印结果 ['\n', '\n'] \t 匹配制表符
print(re.findall('\t','sh\t268*&()kl\t'))
#打印结果 ['\t', '\t'] . 匹配任意一个字符 ,除了换行符。当re.DOTALL标记被指定时, 则可以匹配包括换行符的任意字符
print(re.findall('a.b','anxb jianbkh ahba\rb a\nb'))
#打印结果['anb', 'ahb', 'a\rb'] 第一个anxb 不能匹配因为中间有两个字符,.只能匹配一个, 后面的a\nb 也不能匹配,\n 是换行符。
print(re.findall('a.b','anxb jianbkh ahba\rb a\nb',))
#打印结果['anb', 'ahb', 'a\rb', 'a\nb']
import re [...]代表用来表示 一组字符串找那个单独列出
print(re.findall('a...c','amkbcsc abbyc'))
#打印结果 # 打印结果 ['a', 'c', 'c', 'a', 'c'] 单独列出a c [^...] 代表用来表示 不在[] 中的字符
print(re.findall('[^bcd]','abcdsad, sjdmhsmzsc'))
# 打印结果:['a', 's', 'a', ',', ' ', 's', 'j', 'm', 'h', 's', 'm', 'z', 's']
常用模块 re模块与正则表达式的更多相关文章
- python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块
正则表达式 语法: mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...
- 常用模块re模块(正则表达式)
re模块 一:什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Python中, ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- re模块(Python中的正则表达式)
re模块 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎 ...
- 常用的re模块的正则匹配的表达式
07.01自我总结 常用的re模块的正则匹配的表达式 一.校验数字的表达式 1.数字 ^[0-9]\*$ 2.n位的数字 ^\d{n}$ 3.至少n位的数字 ^\d{n,}$ 4.m-n位的数字 ^\ ...
- Python常用内建模块
Python常用内建模块 datetime 处理日期和时间的标准库. 注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import da ...
- 转:Yii实战中8个必备常用的扩展,模块和widget
转载自:http://www.yiiframework.com/wiki/180/yii8/ 在经过畅K网的实战后,总结一下在Yii的项目中会经常用到的组件和一些基本的使用方法,分享给大家,同时也给自 ...
- s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...
- Python之常用模块--collections模块
认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...
随机推荐
- D3js-API介绍【英】
Everything in D3 is scoped under the d3 namespace. D3 uses semantic versioning. You can find the cur ...
- postgresql的show databases、show tables、describe table操作
1.相当与mysql的show databases; select datname from pg_database; 2.相当于mysql的show tables; SELECT table_nam ...
- 使用jquery datatables插件遇到fnReloadAjax的问题
1 官网地址:http://www.datatables.net/ 2 基本参数介绍 http://blog.csdn.net/mickey_miki/article/details/8240477 ...
- 【BZOJ1414/3705】[ZJOI2009]对称的正方形 二分+hash
[BZOJ1414/3705][ZJOI2009]对称的正方形 Description Orez很喜欢搜集一些神秘的数据,并经常把它们排成一个矩阵进行研究.最近,Orez又得到了一些数据,并已经把它们 ...
- 九度OJ 1086:最小花费 (DP)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3960 解决:819 题目描述: 在某条线路上有N个火车站,有三种距离的路程,L1,L2,L3,对应的价格为C1,C2,C3.其对应关系如下 ...
- Mac下文件编码转换
参见:http://bbs.feng.com/read-htm-tid-107633.html 使用: sudo find *.txt -exec sh -c "iconv -f GB180 ...
- java中String.valueOf(obj)、(String)obj与obj.toString()有什么区别
方法1:采用 Object.toString()方法 在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以对任何严格意义上的java对象都可以调用 ...
- elasticsearch function_score Query——文档排序结果的最后一道墙
function_score Query The function_score query is the ultimate tool for taking control of the scoring ...
- SNMP:简单网络管理协议
基于 TCP/IP 的网络管理包括两部分:网络管理站 (manager) 和被管理的网络单元(被管设备).这些被管设备的共同点就是都运行 TCP/IP 协议.管理进程和代理进程之间的通信有两种方式,一 ...
- 用C++发邮件
近段时间,实验室电脑的IP频繁地改变,搞得想用远程偷下懒都不行.这时想到的解决方法有:静态IP,动态域名,自己解决.静态IP虽然可以自己指定,但一关机后,与对方冲突就完了,作罢.免费的动态域名又要手机 ...