首页 > 其他分享 >10的第三次周报

10的第三次周报

时间:2022-10-30 17:34:45浏览次数:59  
标签:10 匹配 第三次 字符 res 默认 re 模块 周报

目录

json补充

取消中文转义
ensuer_ascii = False

正则匹配

直接匹配字符直接填写需要匹配的字符

字符组

[0123456789]	# 匹配数字字符默认挨个或匹配
[0-9]	# 缩写匹配数字字符默认挨个或匹配
[A-Z]	# 缩写大写匹配字符默认挨个或匹配
[a-z]   # 缩写小写匹配字符默认挨个或匹配
[0-9a-zA-z]		# 可以写在一起默认挨个或匹配

特殊符号

# 默认都是匹配多次
.		匹配除换行符以外的任意字符
\w		匹配数字字母下划线
\W		取反\w
\d		匹配数字
\D		取反\d
\s		匹配任意空白符
\S		取反\s
\n		换行符
\t		制表符
\b		匹配以单词结尾


^		匹配以什么为开头
$		匹配以什么为结尾
^与$		可以精确匹配

a|b		匹配a或b
[]		# 匹配括号内的挨个或匹配
[^]		# 匹配除了括号内的
()		# 分组匹配


量词

*	1次或多次 默认匹配多次
+	0次或多次 默认匹配多次
?	0次或1次  默认匹配多次

{n}		# 匹配n次
{n,}	# 匹配n次,到多次
{n,m}	# 匹配n次,到m次 默认匹配m次
# 量词不能单独使用

贪婪匹配与非贪婪匹配

默认贪婪匹配
取消贪婪匹配
加?

转义符

\会与某些英文字母产生特殊含义
\n	匹配换行符
\\n	取消转义匹配\n
如果想取消所有转义需要每个\都加\\
\\\\n 匹配\\n

re模块正则模块

import re
res = re.findall("匹配字符",待匹配字符串)  # 匹配所有
res = re.search("匹配字符",待匹配字符串)  # 匹配一次
res = re.match("匹配字符",待匹配字符串) # 从开头匹配,一次
res = re.group()  # 取search 与match返回数据

res = re.split('匹配分隔字符串',待匹配字符串)  # 以匹配到字符为分割符,分隔
res = re.sub("匹配分隔字符串",'替换字符',待匹配字符串)
#  把匹配到的字符,替换成指定字符
res = re.subn("匹配分隔字符串",'替换字符',待匹配字符串)
#  把匹配到的字符,替换成指定字符,返回替换后的字符,与匹配的次数


分组优先
re.findall('匹配字符(匹配字符)',待匹配字符串)  # 匹配后默认返回匹配到括号内的字符,
取消分组优先
re.findall('匹配字符(?:匹配字符)',待匹配字符串)  # 匹配后返回匹配到所有字符

分组别名
res = re.findall('匹配字符(?P<分组名称>匹配字符)',待匹配字符串)  
# 匹配后可以按照索引取
res.group(0)
# 也可以按照别名取
res.group('分组别名')

网络爬虫

第三方模块

第三方模块就是其他大佬写的一些,强大实用的功能,方便我们使用

第一次使用第三方模块需要先下载才能使用,后续在使用,就跟内置模块的使用一致

第三方模块的下载安装

第一种pip安装

在使用pip工具时要注意,你的电脑内,是否安装有多个版本的python解释器,如果没有者可正常使用,如果有则需要区分pip工具了,因为每个python3解释器都内置有一个pip工,不要搞混淆了,下载别处导致无法使用,使用时可以在系统环境变量中添加对应版本

pip install 模块名
pip install 模块名 -i 仓库地址
pip install 模块名=版本号 -i 仓库地址

第二种如果使用pycharm编辑器,则可以直接在pycharm模块下载界面,下载安装即可

第三方模块下载中可能会出现的问题

1.报错,报错信息是黄色的
	一般是提示pip工具版本太低,提示升级,升级代码,在报错信息后面,复制粘贴使用即可
2.报错并含有timeout关键字
	说明当前网络不稳定,切换网络,或者多试几次安装。
3.报错并且没有关键字
	面向百度搜索
4.下载缓慢
	pip工具默认仓库是国外的python.org
    可以切换到国内仓库在命令台中直接使用 -i 仓库地址 临时使用
    

requests模块

requests模块能够模拟浏览器发送网络请求

import requests

res = requests.get('网络地址')
res.content 获取二进制网页数据
res.encoding = 编码  # 可以指定需要解码的数据
res.text  获取以utf-8解码后的数据

excel

  1. excel文件后缀问题

    1. 03版之前

      xls

    2. 03版之后

      xlsx

  2. 操作excel的模块

    1. xlwt往表格中写数据,xlrd从表格中读数据
      可以兼容任何版本

    2. openpyxl最近几年比较火的操作excel模块

      03版之前兼容比较查

    3. 还有很多操作excel的模块 甚至涵盖了上述模块pandas模块,也是一个强大的模块

from openpyxl import workbook

wb = worlbook.WorkBook()
sheet = wb.creat_sheet('工作蒲名称',索引有无都可)
sheet.appen('数据可以是列表')
wb.save(文件路径)

加密模块

  1. 何为加密
    把明文数据处理成,让人无法看懂的密文数据

  2. 为什么加密

    防止数据泄露别人可以一眼知道你的密码

  3. 如何判断数据是否加密
    一串没有规律的字符串(数字,字母,组合)

  4. 密文的长度有何研究

    密文越长代表加密算法越复杂,效率低一点,越不容易被破解

  5. 常见的算法

    md5 base64 hmac sha系列

加密算法基本操作

import hashlib

# 只要密文加密算法不变,每次加密后的结果都一致


md5s = hashlib.md5()
md5s.update(二进制数据)
md5s.hexdigest()

日志

  1. 日志可以理解为就是记录行为举止的操作类似于历史史官

  2. 日志的五种模式

    1. debug
    2. info
    3. warning
    4. error
    5. critical
  3. 日志的组成

    日志的产出

    日志的过滤

    输出日志

    格式化日志

终端模拟

subprocess模块模拟终端,可以执行终端命令,并返回结果

标签:10,匹配,第三次,字符,res,默认,re,模块,周报
From: https://www.cnblogs.com/clever-cat/p/16841734.html

相关文章

  • 10.30周日,复盘
    复盘一级标题二级标题三级标题c编程小感悟迭代的使用当一个变量名,不断出现新值替代旧值时,此时该变量就是迭代变量。写代码最忌讳的:一步到位初学者很忌讳一下把代......
  • 1035.uncrossed-lines 不相交的线
    问题描述1035.不相交的线解题思路只是1143.最长公共子序列的另一种描述代码#include<vector>usingstd::vector;classSolution{public:intmaxUncrossed......
  • 1005.maximize-sum-of-array-after-k-negations K次取反后最大化数组和
    问题描述1005.K次取反后最大化的数组和解题思路贪心算法代码classSolution{staticboolcmp(inta,intb){returnabs(a)>abs(b);}public:intlar......
  • 2022.10.30每日一题
    DaimayuanOnlineJudge-出栈序列判断题目描述现在有一个栈,有\(n\)个元素,分别为\(1,2,…,n\)。我们可以通过push和pop操作,将这\(n\)个元素依次放入栈中,然后从栈......
  • 10/30 基于SeedUbuntu16.04的缓冲区溢出实验
    sudosysctl-wkernel.randomize_va_space=0gcc-fno-stack-protectorexample.cgcc-zexecstack-otesttest.c/*call_shellcode.c//设置四个寄存器eax,ebx,ecx,ed......
  • 【C Primer PLus 摘录】第 10 章 数组和指针(未完)
    CPrimerPlus摘录第10章数组和指针10.1数组数组由数据类型相同的一系列元素组成。通过声明数组告诉编译器数组中内含多少元素和这些元素的类型。编译器根据......
  • 10.常用的lambda表达式
    1.list转map工作中,我们经常遇到list转map的案例。Collectors.toMap就可以把一个list数组转成一个Map。代码如下:1publicclassTestLambda{23publicstati......
  • leetcode103-二叉树的锯齿形层序遍历
    103.二叉树的锯齿形层序遍历用两个栈来实现。先把根节点放入第一个栈。循环内部根据哪个栈为空判断新的节点放到哪个栈,确定先左还是先右。当两个栈都为空时,循环结束。......
  • window10永久关闭更新
    window10永久关闭更新一:本地组策略编辑器另一种Win10关闭自动更新方法就是通过更改本地组策略编辑器中的“配置自动更新”和“删除使用所有Windows更新功能的访问权限”......
  • MySQL线上环境单表1000w数据增加字段怎么做
    向一个1000w数据的线上业务表里新加字段,怎么操作?本地测试及正确解决方案:1.准备测试环境MySQL测试环境系统:Linuxcentos6.8内存:2G内存CPU:2核CPU硬盘:200G硬......