利用python进行数据分析 —— python正则表达式(持续更新中!)

文章目录

  • 利用python进行数据分析 —— python基础知识进阶
    • 重点笔记:正则表达式
      • re.match 匹配开头
      • re.search 全文匹配
      • re.sub 替换删除
      • re.compile 编译正则
      • findall 返回列表
      • finditer 返回迭代器
      • re.split 分割返回列表
      • (?P...) 分组匹配
      • 正则表达符号、修饰符
        • 通配符1 `^`:字符串的开头
        • 通配符2 `$`:字符串的结尾
        • 通配符3 `.`: 任何字符,除了换行
        • 通配符4 `|`:或
        • 通配符5 `{}`: 明确数量
        • 通配符6 `[]`: 一系列符号
        • 通配符7 `()`:一个表达部分的逻辑分组
        • 通配符8 `*` :0个或多个前面的字符,贪婪模式
        • 通配符9 `+`:1个或多个前面的字符
        • 通配符10 `?`:0个或多个前面的字符,非贪婪模式
        • 通配符11 `\`:匹配是否有特殊符号
        • `[^aeiou]`:匹配不在这里的单个字母
        • `[0-9a-fA-F]`:用 - 可以指明一个连续的字符范围
        • `\d`:十进制数字,相当于[0-9],其他进制不行
        • `\D`:非数字,相当于[^0-9],其他进制也不包括
        • `\w`:任何词汇的字符,相当于[a-zA-Z_0-9]
        • `\W`:非词汇字符,相当于[^a-zA-Z_0-9]
        • `\s`:所有的空白字符换页,换行,回车,Tab,纵向Tab,相当于[ \f\n\r\t\v]
        • `\S`:所有的非空白字符,相当于[^ \f\n\r\t\v]
    • 不熟悉的知识点:匿名函数Lambda
      • `sort()`函数和`sorted()`函数区别
    • 不熟悉的知识点:柯里化 —— 部分参数的应用

我是第一次接触机器学习,所以对于机器学习的学习过程研究比较迷茫,最终选定跟着一个B站博主 致敬大神 学习机器学习的基础课程。她的主页有关于机器学习和深度学习的学习顺序以及预备知识等等,比较适合我这种刚入门,或者可以跟随我的博客进行学习。

利用python进行数据分析 —— python基础知识进阶

我之前有一些python的基础,所以直接从这本书开始学习一些python进阶的基础知识。这本书不需要全部都看,博主有视频合集,可以直接选择跟着博主视频学习一些必要的基础知识,通俗易懂!

在这里插入图片描述
这本书的学习笔记,可以参考该博主的 GitHub ,笔记内容真的很详细!!!
我的这篇文章主要针对一些比较复杂和陌生的内容进行复盘。

重点笔记:正则表达式

re.match 匹配开头

功能:匹配开头,如果匹配返回某个值,如果不匹配返回None
通式:re.match(pattern, string, flag=0)
pattern:正则表达式如a,如\d代表0-9的数字
string:要匹配的字符串如abc123
flags:标志位,设置匹配方式,如是否区分大小写等

import re
print(re.match('b','abc123'))None
import re
print(re.match('a','abc123'))<re.Match object; span=(0, 1), match='a'>
#span是指匹配范围为(0,1)

在这里插入图片描述

start() 返回匹配开始的位置

end() 返回匹配结束的位置

span() 返回一个元组包含匹配 (开始,结束) 的位置,span就是范围的意思life span寿命

group() 返回被 RE 匹配的字符串

re.search 全文匹配

功能:扫描整个字符串,匹配成功,返回第一个匹配成功的对象,否则返回None
通式:re.search(pattern, string, flags=0)

在这里插入图片描述

re.sub 替换删除

功能:substitude缩写,替换匹配项,用空去替换,那就是删除

通式:re.sub(pattern, repl, string, count=0, flags=0)

repl : 替换的字符串,也可为一个函数

count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配

在这里插入图片描述

re.compile 编译正则

功能:编译正则表达式,生成一个pattern,供 match()search() 使用

通式:re.compile(pattern, flags)

在这里插入图片描述

findall 返回列表

功能:全字符串找,匹配,并返回一个列表,否则返回空列表。

通式:findall(string[, pos[, endpos]])

  • string : 待匹配的字符串。

  • pos : 可选参数,指定字符串的起始位置,默认为 0。

  • endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度

在这里插入图片描述

finditer 返回迭代器

功能:类似findall,只不过返回迭代器

通式:re.finditer(pattern, string, flags=0)

在这里插入图片描述

re.split 分割返回列表

功能:按照能够匹配的子串将字符串分割后返回列表

通式:re.split(pattern, string [, maxsplit=0, flags=0])

  • maxsplit:分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数
import re
pattern = re.compile(r'\W+')
result1 = re.split(pattern, '  runoob, runoob,    runoob.  ',maxsplit=0)
result2 = re.split(pattern, '  runoob, runoob,    runoob.  ',maxsplit=1)
print(result1)
print(result2)# \W非字母数字及下划线
# 也就是字母数字下划线留着
# ,空格不能要,见到分隔
# .也不能要,见到分隔
# 分隔一次,列表里就有一个元素,就有一个,
# 所以开头结尾都有个空
['', 'runoob', 'runoob', 'runoob', '']
['', 'runoob, runoob,    runoob.  ']

(?P…) 分组匹配

功能:分组匹配,一对值

通式:((?P 《key》 \pattern) 得到一组对应的值,key:匹配的字符

使用groupdict函数可以变成字典

import re
s = '1102231990xxxxxxxx'
res = re.search('(?P<province>\d{3})(?P<city>\d{3})(?P<born_year>\d{4})',s)
print(res.groupdict()){'province': '110', 'city': '223', 'born_year': '1990'}

正则表达符号、修饰符

通配符1 ^:字符串的开头

在这里插入图片描述

通配符2 $:字符串的结尾

在这里插入图片描述

通配符3 .: 任何字符,除了换行

在这里插入图片描述

通配符4 |:或

在这里插入图片描述

通配符5 {}: 明确数量

1

通配符6 []: 一系列符号

在这里插入图片描述

通配符7 ():一个表达部分的逻辑分组

在这里插入图片描述

通配符8 * :0个或多个前面的字符,贪婪模式

在这里插入图片描述

通配符9 +:1个或多个前面的字符

在这里插入图片描述

通配符10 :0个或多个前面的字符,非贪婪模式

请添加图片描述

通配符11 \:匹配是否有特殊符号

在这里插入图片描述

[^aeiou]:匹配不在这里的单个字母

在这里插入图片描述

[0-9a-fA-F]:用 - 可以指明一个连续的字符范围

请添加图片描述

\d:十进制数字,相当于[0-9],其他进制不行

在这里插入图片描述

\D:非数字,相当于[^0-9],其他进制也不包括

在这里插入图片描述

\w:任何词汇的字符,相当于[a-zA-Z_0-9]

在这里插入图片描述

\W:非词汇字符,相当于[^a-zA-Z_0-9]

在这里插入图片描述

\s:所有的空白字符换页,换行,回车,Tab,纵向Tab,相当于[ \f\n\r\t\v]

在这里插入图片描述

\S:所有的非空白字符,相当于[^ \f\n\r\t\v]

在这里插入图片描述

不熟悉的知识点:匿名函数Lambda

匿名函数,顾名思义就是不需要具体定义函数名的函数,仅单条语句组成,该语句的结果就是返回值。它是通过lambda关键字定义的,这个关键字没有别的含义,仅仅是说“我们正在声明的是一个匿名函数”。
lambda函数比编写完整的函数要少输入很多字,并且清晰很多。例如:

def func(x):return x*2
y = func(x)
__________________________y = lambda x: x * 2

在这里插入图片描述

sort()函数和sorted()函数区别

sort()函数和sorted()函数,两个函数均为排序,不同的是sort()函数改变原来列表,而sorted()函数不改变原来列表,且reverse=False正序,reverse=True反序。

在这里插入图片描述
sorted()函数和lambada()函数结合
在这里插入图片描述

#根据不同字母个数排序
#foo两个字母,aaaa一个字母
strings = ['foo', 'card', 'bar', 'aaaa', 'abab']#list(x)把foo变成列表['f','o','o'],把字符串变为列表
#set()转化为集合并去掉重复字符,为 {'f', 'o'}
#len()得到长度strings.sorted(key = lambda x:len(set(list(x))))

不熟悉的知识点:柯里化 —— 部分参数的应用

其实就是从已有函数衍生新的函数

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌上新!最强开源模型Gemma 2,27B媲美LLaMA3 70B,挑战3140亿Grok-1

文章目录 LMSYS Chatbot Arena&#xff1a;开源模型性能第一Gemma为什么这么强&#xff1f;架构创新对AI安全性的提升 A领域竞争激烈&#xff0c;GPT-4o 和 Claude 3.5 Sonnet 持续发力&#xff0c;谷歌迅速跟进。 谷歌为应对AI竞争所采取的策略&#xff1a;依靠 Gemini 闭源模…

hdu物联网硬件实验3 按键和中断

学院 班级 学号 姓名 日期 成绩 实验题目 按键和中断 实验目的 实现闪灯功能转换 硬件原理 无 关键代码及注释 /* Button Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached…

解决WSL2报错:当前电脑配置不支持WSL2,请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化

事情要追溯到突发奇想下载了腾讯的手游模拟器开始。。。因为一直闪退&#xff0c;模拟器自检就要求把虚拟化功能关闭了&#xff0c;结果还是一直闪退&#xff0c;WSL2也给我报错了。。。大无语 主要通过以下两个步骤解决&#xff0c;操作了之后需要把电脑重启&#xff1a; 一、…

小程序做自定义分享封面图,Canvas base64图片数据真机上不显示?【已解决】

首选说一下需求&#xff0c;做一个小程序分享&#xff0c;但是封面图要自定义&#xff0c;除了要有对应商品还有有背景图&#xff0c;商品名。类似这种 实现逻辑&#xff0c;把商品图和背景图&#xff0c;再加上价格和商品名用canvas 渲染出来 这是弄好之后的效果图&#xff0…

SpringSecurity中文文档(Servlet Method Security)

Method Security 除了在请求级别进行建模授权之外&#xff0c;Spring Security 还支持在方法级别进行建模。 您可以在应用程序中激活它&#xff0c;方法是使用EnableMethodSecurity 注释任何Configuration 类&#xff0c;或者将 < method-security > 添加到任何 XML 配…

springbootAl农作物病虫害预警系统-计算机毕业设计源码21875

摘要 随着农业现代化的推进&#xff0c;农作物病虫害的防治已成为农业生产中的重要环节。传统的病虫害防治方法往往依赖于农民的经验和观察&#xff0c;难以准确、及时地预测和防控病虫害的发生。因此&#xff0c;开发一种基于现代信息技术的农作物病虫害预警系统&#xff0c;对…

【计算机毕业设计】012基于微信小程序的科创微应用平台

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

解决vite 断点调试定位不准确问题

问题&#xff1a;vite构建时&#xff0c;控制台报错行数等信息定位不准确或debugger断点调试定位不准确 解决&#xff1a;F12后打开设置面板&#xff0c;把“JavaScript源代码映射”去掉可临时解决&#xff0c;如需永久解决需升级vite到最新版 还有一种&#xff1a; 参考&…

7.9 cf div3

BProblem - B - Codeforces 题目解读&#xff1a; 找到严格大于相邻数字的数&#xff0c;将其减一&#xff0c;直到整个数组成为稳定的&#xff08;不存在数字严格大于相邻数&#xff09; ac代码 #include<bits/stdc.h> typedef long long ll;#define IOS ios::sync_w…

免费白嫖A100活动开始啦,InternLM + LlamaIndex RAG 实践

内容来源&#xff1a;Docs 前置知识&#xff1a; 检索增强生成&#xff08;Retrieval Augmented Generation&#xff0c;RAG&#xff09; LlamaIndex LlamaIndex 是一个上下文增强的 LLM 框架&#xff0c;旨在通过将其与特定上下文数据集集成&#xff0c;增强大型语言模型&a…

决策树算法简单介绍:原理和方案实施

决策树算法介绍&#xff1a;原理和方案实施 决策树&#xff08;Decision Tree&#xff09;是一种常用的机器学习算法&#xff0c;它既可以用于分类任务&#xff0c;也可以用于回归任务。由于其直观性和解释性&#xff0c;决策树在数据分析和模型构建中得到了广泛的应用。本文将…

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

挖K脚本检测指南

免责声明:本文仅做分享... 目录 挖K样本-Win&Linux-危害&定性 Linux-Web 安全漏洞导致挖K事件 Windows-系统口令爆破导致挖K事件 --怎么被挖K了??? 已经取得了权限. 挖K样本-Win&Linux-危害&定性 危害&#xff1a;CPU 拉满&#xff0c;网络阻塞&…

在Linux下使用Docker部署chirpstack

目录 一、前言 二、chirpstack 1、chirpstack是什么 2、chirpstack组件 3、为什么选择Docker部署 三、Linux下部署过程 四、web界面部署过程 一、前言 本篇文章我是在Linux下使用 Docker 进行部署chirpstack&#xff0c;chirpstack采用的是v4 版本&#xff0c;v4 版本 与…

Logstash常用的filter四大插件

以博客<ELK日志分析系统概述及部署>中实验结果为依据 补充&#xff1a;如何用正则表达式匹配一个ipv4地址 &#xff08;[0-9] | [1-9][0-9] | 1[0-9][0-9] | 2[04][0-9] | 25[0-5]&#xff09;\.&#xff08;[0-9] | [1-9][0-9] | 1[0-9][0-9] | 2[04][0-9] | 25[0-5]&a…

基于Java的数码论坛系统设计与实现

你好&#xff0c;我是计算机领域的研究者。如果你对数码论坛系统开发感兴趣或有相关需求&#xff0c;欢迎联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; Java技术、MySQL数据库、B/S架构、SpringBoot框架 工具&#xff1a; Eclipse、MySQ…

css 文件重复类样式删除

上传文件 进行无关 className 删除 <div style"display: flex;"><input type"file" change"handleFileUpload" /><el-button click"removeStyles" :disabled"!fileContent">Remove Styles and Download&…

antd a-select下拉框样式修改 vue3 亲测有效

记录一下遇到的问题 1.遇到问题&#xff1a; 使用到Vue3 Ant Design of Vue 3.2.20&#xff0c;但因为项目需求样式&#xff0c;各种查找资料都未能解决; 2.解决问题&#xff1a; ①我们审查元素可以看到&#xff0c;下拉框是在body中的; ①在a-select 元素上添加dropdownCla…

运行时异常与一般异常的异同

运行时异常与一般异常的异同 1、运行时异常&#xff08;Runtime Exception&#xff09;1.1 特点 2、 一般异常&#xff08;Checked Exception&#xff09;2.1 特点 3、异同点总结3.1 相同点3.2 不同点 4、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷…

图形学各种二维基础变换,原来线性代数还能这么用,太牛了

缩放变换 均匀缩放 若想将一个图形缩小0.5倍 若x乘上缩放值s等于x撇&#xff0c;y同理&#xff0c;则 x ′ s x y ′ s y \begin{aligned} & x^{\prime}s x \\ & y^{\prime}s y \end{aligned} ​x′sxy′sy​&#xff0c;这样就表示了x缩小了s倍&#xff0c;y也是…