常用标准库

1、常用标准库
  builtins        | 内建函数默认加载     
  math            | 数学库              
  random          | 生成随机数           
  time            | 时间                 
  datetime        | 日期和时间           
  calendar        | 日历                 
  hashlib         | 加密算法             
  copy            | 拷贝                
  functools       | 常用的工具       reduece()   wraps()     
  os              | 操作系统接口     与文件相关的    
  re              | 字符串正则匹配       
  sys             | Python自身的运行环境  解释器相关的变量或函数名
  multiprocessing | 多进程               
  threading       | 多线程               
  json            | 编码和解码 JSON 对象 
  logging         | 记录日志,调试       
2、re模块 (regular expression)
import re

	obj = re.match(pattern,string,flags)   
	#pattern是正则规则,string是要匹配的字符串,flasgs是一些参数,如忽略大小写等。 
	match()     从头开始匹配,匹配不成功返回None,obj.group()是匹配的内容,obj.span()是匹配	  内容的位置,obj.start() 匹配内容的开始下标
	fullmatch() 从头到尾,整个字符串都跟pattern进行匹配,匹配不成功返回None,
	search()  扫描整个字符串查找匹配正则格式的内容,找到返回match对象,可以调用.group()
	findall()   查找所有匹配的内容,返回值是一个列表,列表元素是匹配内容
	
	

	
import re
# 通过re模块的compile函数,返回一个pattern对象
pattern = re.compile('abc')
# 通过pattern对象进行 match search  findall  split ...
match_obj = pattern.match('abcdef')
print(match_obj)  # 匹配对象
# 匹配对象调用group获取匹配的内容
g = match_obj.group()
print(g)

match_obj = re.fullmatch('abc', 'xyzABCdef', re.I)
print(match_obj)

match_obj = re.search('abc', 'xyzABCdef', re.I)
print(match_obj)
print(match_obj.group())  # 匹配的内容
print(match_obj.span())   # 匹配内容的位置
print(match_obj.start())

s=' i am a boy'
s = re.sub(r'\s+','#',s) #空白用#替换 #i#am#a#good#boy#



s = 'xiaohua=20 xiaoming=21 xiaohong=19'
def change(mobj):
    content = mobj.group()
    result = str(int(content) + 1)
    return result

s = re.sub(r'\d+', change, s)
print(s)    #xiaohua=21 xiaoming=22 xiaohong=20

s = 'hello25hi8kitty980world'
result = re.split(r'\d+',s)
print(result)  # ['hello', 'hi', 'kitty', 'world']

字符    功能
.       匹配任意1个字符(除了\n)
[]      匹配[]中列举的字符
\d      匹配数字,也就是0-9
\D      匹配非数字,也就是匹配不是数字的字符
\s      匹配空白符,也就是 空格\tab
\S      匹配非空白符,\s取反
\w      a-z, A-Z, 0-9, _
\W      \w取反
\b	匹配边界字符
已知一句话: 'I am a good boy , a handsome boy',提取这句话中的所有单词
s = 'I am a good boy , a handsome boy'
words = re.findall(r'\b[a-z]+\b', s, re.I)
print(words)
表示数量的规则# 已知一句话: 'I am a good boy , a handsome boy',提取这句话中的所有单词
s = 'I am a good boy , a handsome boy'
words = re.findall(r'\b[a-z]+\b', s, re.I)
print(words)
*       可有可无
+       最少一次
?      	0 或 1
{m}     匹配前一个字符出现m次
{m,}    匹配前一个字符至少出现m次
{m,n}   匹配前一个字符出现m到n次
分组操作 () 表示的是一组  |  或者关系
s = 'hi linda'
m_obj = re.search('(hi|hello) (Jack|Tom|Lucy|Linda)', s, re.I)  #
print(m_obj.group()) #hi linda
print(m_obj.group(1)) #hi
print(m_obj.group(2))  #linda
posted @ 2019-12-28 09:48  千亿  阅读(297)  评论(0编辑  收藏  举报