当前位置:首页 > 技术 > 正文内容

Python 字符串常用操作:截取、替换、查找与分割

访客 技术 2026年6月26日 1

在 Python 开发中,字符串处理是最基础且高频的操作。本文将详细介绍如何通过切片、内置方法对字符串进行截取、查找、分割及替换。

1. 字符串截取(切片)

Python 提供了灵活的切片语法 [start:stop] 来截取字符串。下标从 0 开始,支持正向和负向索引,且区间遵循"左闭右开"原则。

# 示例:使用切片获取子串
raw_text = "Python_Programming"

# 截取前 6 个字符
header = raw_text[0:6]
print(header)  # 输出: Python

# 获取特定范围的字符
sub_content = raw_text[7:14]
print(sub_content)  # 输出: Program

# 使用负索引截取末尾字符
ext_name = "report_2023.pdf"
suffix = ext_name[-3:]
print(suffix)  # 输出: pdf

2. 字符串替换

使用 replace(old, new[, count]) 方法可以替换字符串中的指定内容。需要注意的是,Python 中的字符串是不可变对象,执行替换操作后会返回一个新字符串,而不会修改原始变量。

# 示例:替换字符串中的占位符
template = "Error_Code_500"
# 将 500 替换为 404
fixed_text = template.replace("500", "404")
print(fixed_text)  # 输出: Error_Code_404

# 限制替换次数
mult_chars = "a-a-a-a"
limited_replace = mult_chars.replace("a", "b", 2)
print(limited_replace)  # 输出: b-b-a-a

3. 字符串查找

find() 方法用于检索子字符串在目标串中首次出现的位置。如果找到则返回索引值(从 0 开始),否则返回 -1

# 示例:定位关键字位置
log_msg = "Critical: Database connection failed"
keyword_pos = log_msg.find("Database")

if keyword_pos != -1:
    print(f"找到关键字,位置起始于: {keyword_pos}")
else:
    print("未匹配到结果")

# 输出结果: 找到关键字,位置起始于: 10

4. 字符串分割

split(sep[, maxsplit]) 方法根据指定的分隔符将字符串拆分为列表。如果不指定分隔符,默认以空格拆分。

# 示例:解析逗号分隔的数据
csv_row = "apple,banana,orange,grape"
fruit_list = csv_row.split(",")

for fruit in fruit_list:
    print(f"提取到: {fruit}")

# 输出结果:
# 提取到: apple
# 提取到: banana
# 提取到: orange
# 提取到: grape

5. 反向检索 (rindex)

rindex() 方法的作用是返回子字符串在父字符串中最后一次出现的索引位置。其用法与 find() 类似,但区别在于:如果未找到匹配项,rindex() 会直接抛出 ValueError 异常,而不是返回 -1。

语法: str.rindex(sub[, start[, end]])

# 示例:查找子串最后出现的位置
path_string = "/usr/local/bin/python3"
target = "i"

# 获取最后一次出现的索引
last_pos = path_string.rindex(target)
# 获取第一次出现的索引供对比
first_pos = path_string.index(target)

print(f"最后出现的位置: {last_pos}")  # 输出: 17
print(f"首次出现的位置: {first_pos}")  # 输出: 12
标签: PythonString

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。