python模块之re模块
# 正则表达式是用来匹配字符串的方法
# 字符串本身就有匹配方式,为什么要引入正则表达式? 因为原有的字符串匹配不出来原始的方法
# 正则匹配是用来进行模糊匹配的 s = "alex want to drink"
print(s.split(" ")) # 以恐吓
print(s.find("a")) # -1 import re
# 。 模糊匹配一个字符或者数字或者空格,但是不能匹配换行符号
# ^ 行首匹配
# $ 结尾匹配
# * 匹配前面0到多个字符 注意:0也是一个 0就是没有也会返回一个空字符
# + 匹配前面1到多个字符
# ? 匹配前面0到1次的字符 前面的字符可能没有,或只有一个
# {} 指定匹配的次数范围 {5}或者{1,5}前面的字符匹配5次 'aaaaaab' 这样的字符也是可以取到的
# (默认是贪婪匹配 ,按照最多的来,或者按照最少的来) # findall() 方法 完全匹配hello 返回列表
pp = re.findall("h...o","asdadasdashelloasdasdasd")
pp2 = re.findall("^h...o","asdadasdashelloasdasdasd") #匹配不成功
pp3 = re.findall("h*","asdashehllohhhhhhasdas") #匹配不成功 ['', '', '', '', '', 'h', '', 'h', '', '', '', 'hhhhhh', '', '', '', '', '', '']
print(pp3)
import re
#二元字符
# [ ] 字符集 匹配给定范围的一个元素 里面是或的关系
# [ ] 取消元字符的特殊功能 比如* 就就被当成了普通字符 x 而不匹配多个字符了 但是 ^ \ - 这些字符例外!
# [^ ] ^在[ ]中是取反的意思!
# [^4,5] 这里的意思是除了4或和除了5的
# \ 后面跟元字符会取消其特殊功能,但是后面跟着普通的个别字符可以实现特殊功能 \w 表示一个字母
# 如下所示:
# \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 匹配一个特殊字符边界,比如空格 ,&,#等
# \\ 特殊字符 正则表达方式中的转义符号\\ 会经过python的解释器,那么python解释器需要再解释一遍就是\\\\变成4个字符 # () 括号内的规则作为一个整体去匹配的
# | 管道符号 或 的意思 #方法二: x=re.search() 找到一个就返回,返回的是个对象 获取这个对象的值的话 f.group() 获取找到的值 a=re.findall('a[b,v]c','abc')
a=re.findall('[a,z]','abc') # 这样子会返回3个结果 分别是a b c
print(a)
c = re.findall(r"I\b","hello,I am hero I am OK") # 注意转义符号
print(c) # \\ 转移符号的使用 要理解一下,因为 正则表达式里面转义后需要经过python解释器再转义一遍
# 方式一:
n = re.search(r'\\c','asdasd\cf')
print(n.group())
# 方式二:
v = re.search('\\\\c','asdasd\cf')
print(v.group()) #()与| 的方式使用
#()与| 的方式使用 升级版 复杂版 见下面示例 正则与根据组名取值
print(re.search("(as)|3","as3").group()) #as 注意 只有一个值
# 高级版
# <> 是正则表达式中的固定格式
ret=re.search('(?P<id>\d{2})/(?P<name>\w{3})','23/com')
print(ret.group())#23/com
print(ret.group('id'))#
# 正则表达式的方法 re.findall()
re.search().group()
re.match() #只在字符串开始匹配 匹配成功返回一个对象,匹配不成功返回none 也只返回一个对象
re.split() #重点在这里 如意犯错误
re.sub() #相当于replace替换 很好用的方法
re.compile() #将规则编译成一个对象去调用,节省代码的使用量 # 这个先按照k进行分组,然后在按照s对k的分组再次进行分组 ['a', 'd', 'dl', 'op']
print(re.split('[k,s]','asdkdlsop'))
# 注意容易犯错的地方 s 在分割的开头的话会有个空字符被分割出来
print(re.split('[k,s]','sasdkdlsop'))
print(re.sub('a..x','s..b','asdalexppm')) #asds..bppm #re.compile() 的使用 pp=re.compile('/.com')
ret=pp.findall('asdadd.com')
print(ret)
import re
#迭代器对象
ret = re.finditer("\d","asdasda2adsd")
#print(next(ret))
print(next(ret).group())
python模块之re模块的更多相关文章
- Python(五)模块
本章内容: 模块介绍 time & datetime random os sys json & picle hashlib XML requests ConfigParser logg ...
- python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...
- Python模块之常用模块,反射以及正则表达式
常用模块 1. OS模块 用于提供系统级别的操作,系统目录,文件,路径,环境变量等 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("di ...
- [转载]python中的sys模块(二)
#!/usr/bin/python # Filename: using_sys.py import sys print 'The command line arguments are:' for i ...
- [转载]Python中的sys模块
#!/usr/bin/python # Filename: cat.py import sys def readfile(filename): '''Print a file to the stand ...
- Python安装包或模块的多种方式汇总
windows下安装python第三方包.模块汇总如下(部分方式同样适用于其他平台): 1. windows下最常见的*.exe,*msi文件,直接运行安装即可: 2. 安装easy_install, ...
- Python 五个常用模块资料 os sys time re built-in
1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称('posix', 'nt', ' ...
- python基础知识9——模块2——常见内置模块
内置模块 内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 1.sys 用于提供对Python解释器相关的操作: sys.argv 命令行参数List,第一个元素 ...
- python基础知识8——模块1——自定义模块和第三方开源模块
模块的认识 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需 ...
- Python 第五天 模块(2)
模块,用一砣代码实现了某个功能的代码集合. 有两种存在的方式 1.写到一个文件夹里面 2.py文件 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和 ...
随机推荐
- 将cookie 转换成字典格式
b = 'bid=Qzw9cKnyESM; ll="108288"; __yadk_uid=4YChvgeANLBEh4iV00n1tc0HQ8zpmSl1; __utmc=301 ...
- SQL Server Report Server 报表用户权限T-SQL查询
/************************************************************************** 查询用户在报表上的权限 ************ ...
- leetcode刷题第一日<两数和问题>
开始就用到了c++的哈希表是真的恶心,首先学习一波基础知识 https://blog.csdn.net/u010025211/article/details/46653519 下面放下大佬的代码 cl ...
- Oracle命令行中显示:ORA-04076: 无效的 NEW 或 OLD 说明
Oracle命令行进行操作时可能出现"ORA-04076: 无效的 NEW 或 OLD 说明" 需要在条件语句中JOB前面添加“old.”即可(因为是在when条件里面,所以不用“ ...
- [LeetCode] Shortest Distance to a Character 到字符的最短距离
Given a string S and a character C, return an array of integers representing the shortest distance f ...
- Ehcache 3.7文档—基础篇—GettingStarted
为了使用Ehcache,你需要配置CacheManager和Cache,有两种方式可以配置java编程配置或者XML文件配置 一. 通过java编程配置 CacheManager cacheManag ...
- python3 文件读写操作中的文件指针seek()使用
python中可以使用seek()移动文件指针到指定位置,然后读/写.通常配合 r+ .w+.a+ 模式,在此三种模式下,seek指针移动只能从头开始移动,即seek(x,0) . 模式 默认 写方式 ...
- Win10问题汇总
1.重置网络连接命令 netsh winsock reset ipconfig /flushdns 2.WIN10去除我的电脑上面的6个文件夹 把下面代码复制,保存到.reg中,然后执行即可(修改注册 ...
- 《Mysql 锁》
一:什么是锁? - 锁是计算机协调多个进程或纯线程并发访问某一资源的机制. - 通俗的来说,锁是一种对资源的保护形式. 二:锁分类 - 表级锁 - 开销小,加锁快,没有死锁,锁定粒度大,发生锁冲突的概 ...
- Get all static wms goodlocation data
sql function and store process: create function [dbo].[fun_splitin](@c varchar(),@split varchar()) r ...