利用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…

AI端侧大模型未来发展趋势

一、定义与优势 端侧AI大模型是指基于移动终端设备上的大型神经网络模型&#xff0c;这些模型能够在本地设备&#xff08;如智能手机、PC、汽车、XR以及物联网设备等&#xff09;上直接运行和处理人工智能算法&#xff0c;实现如图像识别、语音识别、自然语言处理等任务。端侧…

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

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

docker里日志分割的方法

在Docker中对日志进行按大小分割&#xff08;log rotation&#xff09;是一个常见的需求&#xff0c;因为长时间运行的容器可能会生成大量日志&#xff0c;导致磁盘空间不足。Docker提供了内置的日志管理功能&#xff0c;可以通过配置日志驱动来实现日志的自动分割。以下是具体…

安卓系统裁剪原生app

目录 前言一、修改build目录main.mk二、修改build目录product.mk三、在.mk中使用PRODUCT_DEL_PACKAGES属性 前言 安卓系统裁剪预置应用或服务基本步骤 一、修改build目录main.mk ifdef FULL_BUILD# The base list of modules to build for this product is specified# by th…

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

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

管理者要勇敢做“坏人”

有点正义感的人都对坏人深恶痛绝&#xff0c;但在团队管理上&#xff0c;有一种观念或许会让你感到意外&#xff0c;那就是管理者要敢于做“坏人”。这并不是让管理者去做恶&#xff0c;而是在某些关键时刻&#xff0c;要有勇气打破常规的“好人”形象&#xff0c;做出不受欢迎…

执行数据库语句时没有报错,并且提示执行成功,但在数据库中没有新增数据

这可能是因为你没有提交事务。在执行 INSERT、UPDATE 或 DELETE 等修改数据的操作后&#xff0c;需要明确地提交事务才能将更改持久化到数据库中。 以下是一个示例&#xff0c;展示python中如何在执行 INSERT 语句后提交事务&#xff1a; import pymysql# MySQL数据库连接配置…

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…

Python数据分析实战,公交车站点设置优化分析,案例教程编程实例课程详解

一、引言 随着城市化进程的加快,公共交通在城市交通中扮演着越来越重要的角色。公交车站点作为公共交通系统的重要组成部分,其布局设计直接影响到公共交通的运输效率和市民的出行体验。本文将通过Python数据分析的方法,对某城市的公交车站点设置进行优化分析,旨在提出合理的…

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

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

esp32_spfiffs

生成 spiffs image python spiffsgen.py <image_size> <base_dir> <output_file> eg, python spiffsgen.py 0x2000 ./folder hello.bin Arduino 的库有例子可以直接用于 OTA 升级 spiffs 分区 HTTPUpdateResult HTTPUpdate::updateSpiffs(HTTPClient &h…

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; - 资质和信誉&#xff1a;确保支付公司具有合法的资质和良好的信誉&#xff0c;可以查看其营业执照、支付业务许可证等相关证件。 - 安全性&#xff1a;了解支付公司的安全措施&#xff0c;如加密技术、风险控制体系等…

【康复学习--LeetCode每日一题】2965. 找出缺失和重复的数字

题目&#xff1a; 给你一个下标从 0 开始的二维整数矩阵 grid&#xff0c;大小为 n * n &#xff0c;其中的值在 [1, n2] 范围内。除了 a 出现 两次&#xff0c;b 缺失 之外&#xff0c;每个整数都 恰好出现一次 。 任务是找出重复的数字a 和缺失的数字 b 。 返回一个下标从 0…

探索回归模型的奥秘:从理论到实践,以PlugLink为例

回归模型初探 回归分析&#xff0c;顾名思义&#xff0c;旨在探索两个或多个变量之间的关系&#xff0c;特别是当一个变量&#xff08;因变量&#xff09;依赖于其他一个或多个变量&#xff08;自变量&#xff09;时&#xff0c;它能够预测因变量的值。常见的回归模型包括线性…