Python基础16模块-re模块

1.正则表达式

#^表示在字符串开头匹配,$表示在字符串结尾匹配
#*匹配0到无穷多个
#+匹配1到无穷多个
#?匹配0或者1个
#{}定义匹配个数{0,}==*,{1,}==+,{0,1}==?,{6}=={1,6}
#上面的元字符一般都是贪婪匹配,在后面加上?变成惰性匹配
#[]匹配括号里的字符,只匹配一次,^表示不包含,-表示范围,\表示转义字符,其他在中括号里都无特殊意义
#\d 匹配任何十进制的数
#\D 匹配任何非数字字符
#\s 匹配任何空白字符
#\S 匹配任何非空白字符
#\w 匹配任何字母数字字符
#\W 匹配任何非字母数字字符
#\b 匹配一个特殊边界字符,比如空格,#,&
#?:去匹配优先级
import re
ret = re.findall("www\.(baidu|163)\.com","www.baidu.com")
print(ret)
ret = re.findall("www\.(?:baidu|163)\.com","www.baidu.com")
print(ret)
#结果为:[‘123‘, ‘564‘]
#注:类似\b由于在python解释器上会默认转化,这样传到re解释器上就会有差异,所以在re模块下应该变为\\b或者用r‘\b‘

2.re模块的方法

#search()匹配一个就返回,返回一个对象,如果匹配不到就不返回,用group()方法调用,如果正则表达式用分组形式如(?p<name>[a-z]+)则可用group(name)取出对应分组匹配的内容
#match()从开头开始匹配,匹配一个就返回,返回一个对象,同样用group()调用
#findall()所有符合正则表达式的都匹配,返回一个列表
#split()用正则表达式匹配的字符串进行分割,如re.split("[ab]","abc")结果为[" "," ","c"]先按照a分割再对结果按照b分割
#compile()绑定正则表达式
import re
com = re.compile("\d+")
print(com.findall("fjsdf123eewfwe564sdf"))
#结果为:[‘123‘, ‘564‘]
#finditer()所有符合正则表达式的都匹配,返回一个迭代器
import re
ret = re.finditer("\d","sdf145dfsdf5456")
print(next(ret).group())
print(next(ret).group())
#结果为1
#     4
#sub()将正则表达式匹配的字符串替换成指定字符串如:re.sub("\d","A","a12f")结果为"aAAf",默认为全部替换,也可指定替换次数,如:re.sub("\d","A","a12f",1)表示只匹配一次,结果为"aA2f"
#subn()跟sub()功能一样,返回的是一个元组,包含结果跟匹配的次数

  

原文地址:https://www.cnblogs.com/josie930813/p/9816320.html

时间: 2024-10-08 09:47:31

Python基础16模块-re模块的相关文章

python基础学习日志day5-各模块文章导航

python基础学习日志day5---模块使用 http://www.cnblogs.com/lixiang1013/p/6832475.html python基础学习日志day5---time和datetime模块 http://www.cnblogs.com/lixiang1013/p/6848245.html python基础学习日志day5---random模块http://www.cnblogs.com/lixiang1013/p/6849162.html python基础学习日志da

python基础-常用内建模块

一.collections:内建集合模块. 1.namedtuple:创建一个自定义的tuple对象 2.deque:为了高效实现插入和删除操作的双向列表,适合用于队列和栈 3.defaultdict:Key不存在时返回默认值 4.OrderedDict:保持Key的顺序 5.Counter:一个简单的计数器 二.base64 : 一种用64个字符来表示任意二进制数据的方法 三.struct : str和其他二进制数据类型的转换 四.hashlib : 提供常见的摘要算法,如MD5,SHA1 五

Python基础(12)--模块

本文地址:http://www.cnblogs.com/archimedes/p/python-modules.html,转载请注明源地址. 模块简介 如果你退出 Python 解释器重新进入,以前创建的一切定义(变量和函数)就全部丢失了.因此,如果你想写一些长久保存的程序,最好使用一个文本编辑器来编写程序,把保存好的文件输入解释器.我们称之为创建一个脚本.程序变得更长一些了,你可能为了方便维护而把它分离成几个文件.你也可能想要在几个程序中都使用一个常用的函数,但是不想把它的定义复制到每一个程序

Python基础(九) 模块

今天学习Python中的模块,模块类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个.py文件组成的代码集合就称为模块. 模块分为三种: 自定义模块 第三方模块 内置模块 下面就分别就这三种模块的展开学习: 一.自定义模块 1,定义模块,定义模块的场景有三种: 1 2 3 4 5 场景1.定义的的模块在同一目录下 场景2.定义的模块在同一目录的不

Python之路【第五篇】:Python基础(20)——模块、序列化、os模块

常用模块 time模块 time.time() import time import datetime print(time.time()) # 返回当前时间的时间戳 time.ctime() print(time.ctime()) # 将时间戳转化为字符串格式Wed Feb 17 11:41:27 2016,默认是当前系统时间的时间戳 print(time.ctime(time.time()-3600)) # ctime可以接收一个时间戳作为参数,返回该时间戳的字符串形式 Wed Feb 17

Python基础第四篇—模块

一.模块 模块,是用一堆代码实现了某个功能的代码集合,模块分为三种:自定义模块(自己定义).内置模块(python自带).开源模块 导入模块 (1).导入一个py文件,解释器解释该py文件 (2).导入一个包,解释器解释该包下的 __init__.py 文件 #模块导入 import module from module.xx import xx from module.xx.xx import * from module.xx.xx import xx as rename #自己给模块定义一个

第六章:Python基础の反射与常用模块解密

本課主題 反射 Mapping 介绍和操作实战 模块介绍和操作实战 random 模块 time 和 datetime 模块 logging 模块 sys 模块 os 模块 hashlib 模块 re 模块 本周作业 反射 Mapping 介绍和操作实战 反射是利用字符串的形式去对象 (模块) 中操作 (寻找/检查) 成员 案例例子 假设创建了一个common.py 程序里而有3个功能,比如网站里的登录页面.主页页面还有登出页面都是不同的页面,要显示的内容都不一样. def login(): p

python 基础 7.6 sys 模块

一.sys 模块 sys 模块主要功能是获取参数 [[email protected] pythonscripts]# cat 2.py #!/usr/bin/python #coding=utf-8 import os import sys if  __name__ == '__main__': print ('sys.argv[0]= {0}'.format(sys.argv[0])) print ('sys.argv[1]= {0}'.format(sys.argv[1])) print

python基础(10)--模块

1.模块介绍 模块,用一坨代码实现了某个功能的代码集合 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来说,可能需要多个函数才能完成(函数又可以再不同的.py文件中),n个.py文件组成的戴安集合就称为模块 模块分位三种 1.自定义模块 2.内置标准模块(又称标准库) 3.开源模块 2.常用模块 time模块 time.time() import time import datetime print(time

Python基础知识之xml模块

转载自:http://www.cnblogs.com/alex3714/articles/5161349.html XML处理模块: ml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过<>节点来区别数据结构的: <?xml version="1.0"?> <dat