从 Python 中的字符串中提取子字符串

您所在的位置:网站首页 match和search函数 从 Python 中的字符串中提取子字符串

从 Python 中的字符串中提取子字符串

2023-03-24 14:23| 来源: 网络整理| 查看: 265

当前位置:主页 > 学无止境 > 编程语言 > WEB前端 编程语言 网络 算法 操作系统 数据库 从 Python 中的字符串中提取子字符串 作者:迹忆客 最近更新:2023/03/24 浏览次数:

字符串是一个字符序列。无论我们从事软件开发还是竞争性编程,我们始终都在处理字符串。有时,在编写程序时,我们必须访问字符串的子部分。这些子部分通常称为子字符串。子字符串是字符串的子集。

在 Python 中,我们可以使用字符串切片或使用正则表达式或 regex 轻松完成此任务。

在 Python 中使用字符串切片提取子字符串

在 Python 中,有几种方法可以进行字符串切片。索引是最基本,最常用的方法。请参考以下代码。

myString = "Mississippi" print(myString[:]) # Line 1 print(myString[4 : ]) # Line 2 print(myString[ : 8]) # Line 3 print(myString[2 : 7]) # Line 4 print(myString[4 : -1]) # Line 5 print(myString[-6 : -1]) # Line 6

输出:

Mississippi issippi Mississi ssiss issipp ssipp

在上面的代码中,我们在存储字符串的变量的末尾添加了 [] 括号。我们使用此符号进行索引。在这些括号内,我们添加了一些表示索引的整数值。

这是方括号 [start : stop : step] 的格式(以冒号(:)分隔)。

默认情况下,start 的值是 0 或第一个索引,stop 的值是最后一个索引,step 的值是 1。start 代表子字符串的开始索引,stop 代表子字符串的结束索引,step 代表在每个索引之后递增的值。

返回的子字符串实际上在 start 索引和 stop - 1 索引之间,因为在 Python 中索引从 0 开始。因此,如果我们想从 Mississippi 中检索 Miss,则应使用 [0 : 4]

方括号不能为空。如果要使用默认值,则应在所需数量的冒号:之间添加空格,以指出要引用的参数。请参考以下列表以更好地理解。

[:] - > 返回整个字符串。 [4 : ] - > 返回从索引 4 到最后一个索引的子字符串。 [ : 8] - > 返回从索引 0 到索引 7 的子字符串。 [2 : 7] - > 返回从索引 2 到索引 6 的子字符串。 [4 : -1] - > 返回从索引 4 到倒数第二个索引的子字符串。-1 可用于定义 Python 中的最后一个索引 [-6 : -1] - > 返回从结尾的第六个索引到倒数第二个索引的子字符串。 在 Python 中使用 slice() 构造函数提取子字符串

无需在括号内提及索引,我们可以使用 slice() 构造函数来创建 slice 对象,以对字符串或任何其他序列(如列表或元组)进行切片。

slice(start, stop, step) 构造函数接受三个参数,即 start,stop 和 step。它们的含义与上面解释的完全相同。

与方括号表示法相比,切片的工作方式略有不同。切片对象放在字符串变量括号内,例如 myString[]。

如果将单个整数值(例如 x)提供给 slice() 构造函数,并进一步用于索引切片,则会检索从索引 0 到索引 x - 1 的子字符串。请参考以下代码。

myString = "Mississippi" slice1 = slice(3) slice2 = slice(4) slice3 = slice(0, 8) slice4 = slice(2, 7) slice5 = slice(4, -1) slice6 = slice(-6, -1) print(myString[slice1]) print(myString[slice2]) print(myString[slice3]) print(myString[slice4]) print(myString[slice5]) print(myString[slice6])

输出:

Mis Miss Mississi ssiss issipp ssipp

收到的输出是不言自明的。索引遵循与括号符号定义相同的规则。

在 Python 中使用正则表达式提取子字符串

对于正则表达式,我们将使用 Python 的内置包 re。

import re string = "123AAAMississippiZZZ123" try: found = re.search('AAA(.+?)ZZZ', string).group(1) print(found) except AttributeError: pass

输出:

Mississippi

在上面的代码中,search() 函数搜索在传递的字符串中作为参数提供的模式的第一个位置。它返回一个 Match 对象。Match 对象具有许多定义输出的属性,例如子字符串的 span 或子字符串的开始和结束索引。

print(dir(re.search('AAA(.+?)ZZZ', string))) 将输出 Match 对象的所有属性。请注意,某些属性可能会丢失,因为使用 dir() 时会调用 __dir__() 方法,并且此方法返回所有属性的列表。而且此方法是可编辑的或可重写的。

上一篇:在 Python 中循环遍历字符串

下一篇:在 Python 中的字符串中查找字符

相关文章 Python 中的字符串大写

发布时间:2023/03/24 浏览次数:64 分类:编程语言

在 Python 中,可以使用 2 种主要方法将字符串大写,即 upper()和 capitalize()函数。

Python 中的等效 toString()函数

发布时间:2023/03/24 浏览次数:84 分类:编程语言

本教程演示了 Python 中 tostring()函数的等效功能

Python 中的 String Builder 等效

发布时间:2023/03/24 浏览次数:76 分类:编程语言

本教程演示了 Python 中 StringBuilder 类的等效方法

在 Python 中替换字符串中的字符

发布时间:2023/03/24 浏览次数:189 分类:编程语言

本教程演示了如何在 Python 中替换字符串中的字符

在 Python 中将 Unicode 字符转换为 ASCII 字符串

发布时间:2023/03/24 浏览次数:163 分类:编程语言

它演示了如何在 Python 中将 Unicode 字符转换为字符串

在 Python 中检查变量是否为字符串

发布时间:2023/03/24 浏览次数:86 分类:编程语言

本教程演示了如何在 Python 中检查变量是否为字符串

在 Python 中的字符串中查找字符

发布时间:2023/03/24 浏览次数:142 分类:编程语言

本教程演示如何查找字符串中字符的位置

在 Python 中循环遍历字符串

发布时间:2023/03/24 浏览次数:81 分类:编程语言

本教程演示了如何在 Python 中迭代字符串。

如何从 Python 中的 URL 获取 JSON

发布时间:2023/03/24 浏览次数:183 分类:编程语言

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于 Web 应用中传输数据。在 Python 中,我们可以使用 urllib 或 requests 库来获取 JSON 数据。本文将介绍如何从 Python 中的 UR

转载请发邮件至 [email protected] 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3