python 正则表达式re库学习

技术QQ交流群:294088839

# 正则表达式
# 掌握正则表达式
#import re
# s = r'abc'
# # print(re.findall(s, 'abcdsasdads'))
# #
# # st = "top tip tqp twp tep"
# # res = r'top'
# # print(re.findall(res,st))
# #
# # res = r"t[io]p"
# # print(re.findall(res,st))
# compile 编译正则  形成一个对象
# 编译后的正则 运行速度更快
# p = re.compile('aaa')
# print(p.findall('aaa'))
# 不区分大小写 re.I 这个参数不区分大小写
# csvt_re = re.compile(r'csvt', re.I)
# print(csvt_re.findall('cSvT'))
# # match
# print(csvt_re.match('cSvT'))
# # search
# print(csvt_re.search('cSvT'))
# # finditer 迭代对象
# x = csvt_re.finditer('cSvT')
# print(x)
# # sub
#  查看库里方法 dir()
# print(dir(re))
# r1 = r'csvt.net'
# print(re.findall(r1, 'csvt.net'))
# s  =  """
# hello csvt
# hello csvt hello
# csvt hehe
# """
# r = r"^csvt"
# # 大M 方法  进行多行匹配
# print(re.findall(r, s, re.M))
#
# tel = r"""
# \d{3,4}
# -?
# \d{8}
# """
# # 如果正则是多行的时候 就可以利用 大X方法 进行匹配
# print(re.findall(tel, '010-12345678', re.X))
# email = r"\w{3}@\w+(\.com|\.cn)"
# print(re.match(email, '[email protected]'))
# print(re.match(email, '[email protected]').group(0))

# 爬虫练习
# 获取HTML代码
# import re
# import urllib
# def getHtml(url):
#     page = urllib.request.urlopen(url)
#     html = page.read()
#     return html
# #利用正则 找到图片的地址
# def getImg(html):
#     reg = r'src="(.*\.jpg)" size'
#     imgre = re.compile(reg)
#     html = html.decode('utf-8') # python 3 中 对数据的爬取 需要设置汉字编码
#     imglist = re.findall(imgre, html)
#    # return imglist
#     x = 0
#     for i in imglist:
#        # print(i)
#          urllib.request.urlretrieve(i, '%s.jpg' % x)
#          x += 1
# html = getHtml("https://tieba.baidu.com/p/5694970555")
# #print(getImg(html))
# getImg(html)

# python 对内存的使用
# 浅拷贝和深拷贝
# 所谓浅拷贝就是对引用的拷贝
# 所谓深拷贝就是对对象的资源的拷贝
# 例子:
# a = [1,2,3]
# b = a
# print(b)
# 内存的位置
# print(id(a))
# print(id(b))
# a.append('a')
# print(a)
# print(b)
# 拷贝数据
# import copy
# a = [1, 2, 3, ['a', 'b', 'c']]
# b = a
# c = copy.copy(a)
# 看着数据一样的 但是地址空间是不一样的
# print(b)
# print(c)
# print(id(a))
# print(id(b))
# print(id(c))
# 这样当改A的时候 C是不变的
# a.append('d')
# print(a)
# print(b)
# print(c)
# 浅拷贝 复制出来一个跟父对象一样的数据 但是地址空间变了
# 但是里面的元素的地址是没有发生变化的 如果父对象追加的数据
# 子对象是不会追加的 但是如果父对象元素进行修改的话 这样 子元素就会变
# 字符串和元组是不可变类型  列表跟数组是可变类型

# 深拷贝 把所有的数据都拷贝数据  什么都发生变化

猜你喜欢

转载自blog.csdn.net/Drug_/article/details/81562673