Python中字符串和正则表达式
Python中字符串和正则表达式
在Python编程中,字符串是最常用的数据类型之一。字符串用于表示文本数据,而正则表达式则是一种强大的工具,用于处理和匹配字符串中的模式。本文将介绍Python中的字符串操作、字符串格式化以及如何使用正则表达式进行复杂的字符串处理。
一、Python中的字符串
1. 字符串的定义
在Python中,字符串可以用单引号 '' 或双引号 "" 括起来。例如:
string1 = 'Hello, World!'
string2 = "Python is great!"
2. 字符串的基本操作
-
连接字符串:可以使用
+运算符连接两个字符串。greeting = "Hello" name = "Alice" message = greeting + ", " + name + "!" print(message) # 输出:Hello, Alice! -
重复字符串:可以使用
*运算符重复字符串。repeat_string = "Ha" * 3 print(repeat_string) # 输出:HaHaHa -
获取字符串长度:使用
len()函数获取字符串的长度。length = len(message) print(length) # 输出:13 -
字符串切片:可以通过索引访问字符串中的字符,使用切片操作获取子字符串。
substring = message[0:5] # 获取前5个字符 print(substring) # 输出:Hello
3. 字符串格式化
字符串格式化用于将整数、实数、列表等对象转化为特定格式的字符串。Python中字符串格式化的格式如下:
‘%[-][+][0][m][.n]格式字符’ % x
%符号之前的字符串为格式字符串,之后的部分为需要进行格式化的内容。- 从右到左:
x:待转化的表达式%:格式运算符- 格式字符:指定类型
[.n]:指定精度或小数位数[m]:指定最小宽度[0]:指定空位填0[+]:对正数加正号[-]:指定左对齐输出
Python支持大量的格式字符,常见的格式字符如下:
%s:字符串(采用str()的显示)%r:字符串(采用repr()的显示)%c:单个字符%d:十进制整数%i:十进制整数%o:八进制整数%x:十六进制整数%e:指数(基底写为e)%E:指数(基底写作E)%f,%F:浮点数%g:指数(e)或浮点数(根据显示长度)%G:指数(E)或浮点数(根据显示长度)%%:字符“%”
str() 主要用于为终端用户输出一些信息,而 repr() 主要用于调试;同时后者的目标是为了消除一些歧义(例如浮点数的精度问题),前者主要为了可读。
二、正则表达式
正则表达式(Regular Expression)是一种用于描述字符串模式的工具。Python的 re 模块提供了对正则表达式的支持,使得字符串的搜索、匹配和替换变得更加高效和灵活。
1. 导入 re 模块
在使用正则表达式之前,需要导入 re 模块:
import re
2. 常用的正则表达式操作
-
匹配字符串:使用
re.match()检查字符串是否符合某个模式。pattern = r'Hello' text = 'Hello, World!' match = re.match(pattern, text) if match:print("Match found!") # 输出:Match found! -
搜索字符串:使用
re.search()在字符串中搜索模式。pattern = r'World' search_result = re.search(pattern, text) if search_result:print("Search found!") # 输出:Search found! -
查找所有匹配项:使用
re.findall()查找字符串中所有匹配的子串。text = 'abc 123 abc 456 abc 789' matches = re.findall(r'abc', text) print(matches) # 输出:['abc', 'abc', 'abc'] -
替换字符串:使用
re.sub()替换字符串中的匹配项。new_text = re.sub(r'abc', 'XYZ', text) print(new_text) # 输出:XYZ 123 XYZ 456 XYZ 789
3. 正则表达式的常用模式
.:匹配任意字符(除了换行符)。^:匹配字符串的开头。$:匹配字符串的结尾。*:匹配前面的字符零次或多次。+:匹配前面的字符一次或多次。?:匹配前面的字符零次或一次。{n}:匹配前面的字符恰好n次。[]:匹配括号内的任意字符。|:表示“或”操作。
三、总结
在Python中,字符串是处理文本数据的基本数据类型,而正则表达式则为字符串的搜索和处理提供了强大的工具。通过掌握字符串的基本操作、格式化和正则表达式的使用,您可以更高效地处理和分析文本数据。这对于数据清洗、文本分析和信息提取等任务尤为重要。
相关文章:
Python中字符串和正则表达式
Python中字符串和正则表达式 在Python编程中,字符串是最常用的数据类型之一。字符串用于表示文本数据,而正则表达式则是一种强大的工具,用于处理和匹配字符串中的模式。本文将介绍Python中的字符串操作、字符串格式化以及如何使用正则表达式…...
Leecode刷题C语言之N皇后
执行结果:通过 执行用时和内存消耗如下: 代码如下: int solutionsSize;char** generateBoard(int* queens, int n) {char** board (char**)malloc(sizeof(char*) * n);for (int i 0; i < n; i) {board[i] (char*)malloc(sizeof(char) * (n 1))…...
即时通讯| IM+RTC在AI技术加持下的社交体验
即时通讯作为互联网的重要应用之一,见证了中国互联网30年发展的辉煌历程。 它从最初的文字交流,发展到如今的语音、视频通话,甚至是虚拟现实社交,已经渗透到生活的社交、娱乐、商务等方方面面,成为现代社会不可或缺的一…...
repo仓库转移到自己本地的git服务器
前提条件:搭建好gitolite 以转移正点原子rk3568_linux工程为例子,将其转移到自己的git服务器。 获取完整repo仓库 将正点原子epo仓库sync出来 evanevan-X99:~/SRC/atk$ .repo/repo/repo sync -l -j10 evanevan-X99:~/SRC/atk$ .repo/repo/repo list -n…...
微服务即时通讯系统的实现(服务端)----(2)
目录 1. 语音识别子服务的实现1.1 功能设计1.2 模块划分1.3 模块功能示意图1.4 接口的实现 2. 文件存储子服务的实现2.1 功能设计2.2 模块划分2.3 模块功能示意图2.4 接口的实现 3. 用户管理子服务的实现3.1 功能设计3.2 模块划分3.3 功能模块示意图3.4 数据管理3.4.1 关系数据…...
人工智能-深度学习-神经网络-激活函数
激活函数通过引入非线性来增强神经网络的表达能力,对于解决线性模型的局限性至关重要。由于反向传播算法(BP)用于更新网络参数,因此激活函数必须是可微的,也就是说能够求导的。 满足激活函数的条件 1.可微分,也就是可求导 激活函…...
vue3+ts+uniapp微信小程序顶部导航栏
这是colorui改的,不用就不用看啦 color-ui(https://docs.xzeu.com/#/) 新建component文件夹创建topNavigation.vue <template><view><view class"cu-custom" :style"height: CustomBar px"><view class"cu-bar…...
IAR中编译下载未下载问题
第一张图片是正常下载,第二张未正常下载。经过查看download选项发现 启用了 suppress download (禁用下载)...
springboot(20)(删除文章分类。获取、更新、删除文章详细)(Validation分组校验)
目录 一、删除文章分类功能。 (1)接口文档。 1、请求路径、请求参数。 2、请求参数。 3、响应数据。 (2)实现思路与代码书写。 1、controller层。 2、service接口业务层。 3、serviceImpl实现类。 4、mapper层。 5、后端接口测试。…...
英语系统语法书面记载:高级语法 8 的状语从句
在英语高级语法中,状语从句是一种用来修饰动词、形容词、副词或整个句子的从句,它提供有关时间、地点、原因、条件、方式、让步等信息。状语从句通常由特定的连词引导。以下是常见的几种状语从句类型及其用法: 1. 时间状语从句 (Adverbial Cl…...
C语言:深入理解指针(1)
一.内存和地址 在讲内存和地址之前,我们想有个生活中的案例: 假设有一栋宿舍楼,把你放在楼里,楼上有100个房间,但是房间没有编号,你的一个朋友来找你玩,如果想找到你,就得挨个房子去…...
priority_queue--优先队列
一、认识优先队列 priority_queue(优先队列)是 C 标准模板库(STL)中的一个容器适配器。它的底层实现通常是用堆(一般是二叉堆)来实现的。优先队列中的元素按照一定的优先级顺序进行排列,在队首的…...
Paper -- 建筑物高度估计 -- 基于深度学习、图像处理和自动地理空间分析的街景图像建筑高度估算
论文题目: Building height estimation from street-view imagery using deep learning, image processing and automated geospatial analysis 中文题目: 基于深度学习、图像处理和自动地理空间分析的街景图像建筑高度估算 作者: Ala’a Al-Habashna, Ryan Murdoch 作者单位: …...
开发一套ERP 第八弹 RUst 插入数据
更全面的报错,方便检查错误在哪里,现代高级语言越来越智能 还是得看下原文档怎么操作的 src 目录为crate 的根目录 想在crate 中模块相互引入需要在 main 中声明,各个模块,然后才能在各个模块中相互引入和使用 原始工程引入,避免直接使用 lib.rs 回合cargo 中的一些 工程管理出…...
回退用 git revert 还是 git reset?
git revert 会生成一个新的 commit 来记录此次操作;git reset 是把 HEAD 指针向前挪动一次,会减少一个 commit。 回退用 git revert 回退还是用 git reset,核心就一点: 是否需要记录这次回退。 如果需要记录这次回退,…...
【docker】多阶段构建与基础构建,及企业案例展示
基础构建与多阶段构建对比 基础构建(单阶段构建) 在基础构建中,所有构建过程和最终的应用程序都在同一个镜像中进行,构建工具和最终应用程序都会在最终镜像中。 这样构建镜像时会包含所有的构建工具和依赖,因此最终镜…...
基于链表的基础笔试/面试题
1. 反转链表 问题描述:反转一个单向链表。 示例: 输入:1 → 2 → 3 → 4 → 5 输出:5 → 4 → 3 → 2 → 1 class ListNode {int val;ListNode next;ListNode(int x) {val x;} }public class LinkedList {public ListNode …...
SARIMA 模型Matlab代码
% 导入数据 data readtable(data.xlsx); % 假设数据在第一列 y data{:, 1}; % 获取第一列数据% 划分训练集和测试集,80% 训练,20% 测试 trainSize floor(0.8 * length(y)); trainData y(1:trainSize); testData y(trainSize1:end);% 创建时间序列…...
第八课 Unity编辑器创建的资源优化_特效篇(Particle System)详解
无论是CPU还是GPU,粒子系统对其的影响面都是不容小觑的。随着项目的重度化和3A化,玩家的口味变挑剔了、游戏玩法复杂度变高了、画面的特效表现变复杂了......所以我们还是更加谨慎地对待粒子系统。 特效(Particle System) 游戏效…...
Oracle对比表与表之间的结构
自己首先想到的就是,navicat有提供结构同步 但是有些时候情况不一样,比如我遇到的是连接不同,而且是互相同步,以最多的列的那个表为样 没有说一个固定的源 那么还可以通过导出表结构去另一个库中执行看是否报错,以此来判断结构的不同 但是我感觉有点儿麻烦 最后想到通过sql语…...
华为新机散热“封神”:拆解仿生羽翼涡扇,看“小翅膀”如何颠覆手机温控
🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 💌公众号:莱歌数字(B站同名) 📱个人微信:yanshanYH 211、985硕士,从业16年 从…...
m3u8流媒体视频下载工具的技术实现与应用指南
m3u8流媒体视频下载工具的技术实现与应用指南 m3u8流媒体视频下载工具是一款基于现代Web技术栈开发的桌面应用程序,专门用于处理各类在线视频资源的下载需求。该工具采用TypeScript语言开发,结合Electron框架构建跨平台桌面应用,为用户提供专…...
Jupyter Notebook快速入门:从安装到高效编码
1. 为什么你需要Jupyter Notebook? 第一次听说Jupyter Notebook时,我也觉得这不过是个普通的代码编辑器。直到真正用起来才发现,它完全改变了我的编程工作流。想象一下,你正在写一个数据分析脚本,传统方式需要反复运行…...
PathOfBuilding:颠覆式离线构筑计算器如何精准解决流放之路角色规划难题
PathOfBuilding:颠覆式离线构筑计算器如何精准解决流放之路角色规划难题 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/gh_mirrors/pat/PathOfBuilding 在《流放之路》的复杂世界中,…...
3步解锁音频自由:NCMDump工具全场景解密指南
3步解锁音频自由:NCMDump工具全场景解密指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 问题:被加密的音乐困境 音乐收藏者的痛点清单 现代音乐爱好者常面临一个共同难题:从音乐平台下载的N…...
多智能体概述
一、多智能体概述 多智能体系统通过协调多个专职智能体或组件来完成复杂流程。并非所有复杂任务都需要多智能体——单个智能体配合合适的工具与提示词往往就够用。我们何时采用多智能体模式更有价值,以及 AgentScope 支持哪些模式? 1、为什么要用多智能体…...
AI写专著必备:优质工具大盘点,全方位提升专著撰写效率
撰写学术专著时,研究者需要在“内容的深度”和“覆盖的广度”之间找到一个恰当的平衡,而这正是许多人面临的主要难题。从深度出发,专著的核心论点需要具备足够的学术分量,不仅要清楚解答“是什么”,还应该深入探讨“为…...
别再乱找了!Win11/Win10下WSL的wsl.conf和.wslconfig文件路径全解析(附修改教程)
WSL配置文件定位与修改实战指南:从路径解析到高效配置 1. 理解WSL配置体系的核心架构 每次启动WSL时,系统会按照特定顺序加载两类配置文件:.wslconfig和wsl.conf。这两者虽然名称相似,但作用域和功能定位完全不同,理解…...
零基础掌握Degrees of Lewdity本地化工具:开源项目中文适配方案全攻略
零基础掌握Degrees of Lewdity本地化工具:开源项目中文适配方案全攻略 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Lo…...
【Python实战解析】从数据爬取到房价预测:一个完整的数据科学项目实战
1. 从零开始:房产数据爬取实战 第一次做房产数据爬取时,我盯着满屏的HTML标签差点崩溃。但后来发现,只要掌握几个关键技巧,爬取房产网站数据其实比想象中简单得多。我们这次要爬取的是长沙二手房数据,包含户型、面积、…...
