当前位置:首页>python>Python 字符串完全指南:索引、切片、查找、替换与正则表达式

Python 字符串完全指南:索引、切片、查找、替换与正则表达式

  • 2026-10-11 08:41:44
Python 字符串完全指南:索引、切片、查找、替换与正则表达式

Python 字符串完全指南:索引、切片、查找、替换与正则表达式

8. 字符串

字符串是 Python 中最常用的数据类型之一,本章将系统讲解字符串的索引、切片、遍历、常用方法、文件读写清洗,以及正则表达式基础,实现完整的文本处理能力。

8.1 字符串是字符序列

字符串是由有序字符组成的序列,每个字符对应一个位置编号,称为索引,索引从 0 开始。

CODE
fruit = 'banana'# 获取索引为 0 的字符fruit[0]

运行结果:

CODE
'b'
CODE
# 获取索引为 1 的字符fruit[1]

运行结果:

CODE
'a'

负索引(从末尾计数)

CODE
# 最后一个字符fruit[-1]# 倒数第二个字符fruit[-2]

运行结果:

CODE
'a''n'

获取字符串长度

CODE
len(fruit)

运行结果:

CODE
6

8.2 字符串切片

切片用于获取字符串的子串,格式:[起始:结束],包含起始位置,不包含结束位置。

CODE
fruit = 'banana'# 取索引 0 到 2(不包含 3)fruit[0:3]

运行结果:

CODE
'ban'
CODE
# 从头开始到索引 3 之前fruit[:3]

运行结果:

CODE
'ban'
CODE
# 从索引 3 开始到结尾fruit[3:]

运行结果:

CODE
'ana'

8.3 字符串不可变

字符串是不可变类型,不能直接修改某个位置的字符,只能通过切片拼接生成新字符串。

CODE
greeting = 'Hello, world!'# 错误写法:字符串不支持直接修改# greeting[0] = 'J'# 正确写法:切片 + 拼接new_greeting = 'J' + greeting[1:]print(new_greeting)

运行结果:

CODE
'Jello, world!'

8.4 字符串遍历

使用 for 循环逐个访问字符串中的字符。

CODE
word = 'banana'for char in word:print(char)

运行结果:

CODE
banana

8.5 字符串常用方法

CODE
word = 'banana'# 转换为大写word.upper()

运行结果:

CODE
'BANANA'
CODE
# 转换为小写word.lower()

运行结果:

CODE
'banana'
CODE
# 统计子字符串出现次数word.count('a')

运行结果:

CODE
3
CODE
# 判断是否以指定字符串开头word.startswith('ban')

运行结果:

CODE
True
CODE
# 判断是否以指定字符串结尾word.endswith('nana')

运行结果:

CODE
True
CODE
# 查找子串位置,返回第一个出现的索引word.find('nan')

运行结果:

CODE
2

8.6 字符串与列表相互转换

字符串 → 列表

CODE
s = 'spam'# 拆分为字符列表list(s)

运行结果:

CODE
['s', 'p', 'a', 'm']
CODE
s = 'hello world'# 按空格拆分为单词列表s.split()

运行结果:

CODE
['hello', 'world']

列表 → 字符串

CODE
words = ['hello', 'world']# 用空格连接列表为字符串' '.join(words)

运行结果:

CODE
'hello world'

8.7 文件读取与文本清洗

读取文本文件并去除换行符、空白字符,清洗文本内容。

CODE
# 打开并读取文件file = open('words.txt')# 逐行处理for line in file:# 去除首尾空白、换行符    word = line.strip()print(word)

8.8 字符串查找与替换

CODE
line = 'I love bananas, bananas are sweet'# 替换所有指定子串new_line = line.replace('bananas', 'apples')print(new_line)

运行结果:

CODE
'I love apples, apples are sweet'

8.9 正则表达式基础

使用 re 模块进行复杂模式匹配。

CODE
import retext = 'Hello, my email is test@example.com'# 查找邮箱match = re.search(r'\w+@\w+\.\w+', text)print(match.group())

运行结果:

CODE
'test@example.com'
CODE
# 替换文本中的数字re.sub(r'\d', 'X', 'Room 123, Table 45')

运行结果:

CODE
'Room XXX, Table XX'

8.10 术语表

英文
中文
解释
sequence
序列
有序的字符集合
index
索引
字符的位置编号,从 0 开始
slice
切片
截取字符串的一部分
immutable
不可变
不能直接修改原字符串
concatenation
拼接
使用 + 连接字符串
regular expression
正则表达式
用于模式匹配的规则
substitution
替换
查找并替换文本内容

8.11 练习

8.11.1 统计单词中元音字母数量

CODE
defcount_vowels(word):"""统计单词中元音字母的数量"""    vowels = 'aeiouAEIOU'    count = 0for char in word:if char in vowels:            count += 1return countcount_vowels('banana')

运行结果:

CODE
3

8.11.2 判断回文字符串

CODE
defis_palindrome(s):"""判断字符串是否为回文"""    s = s.lower()return s == s[::-1]is_palindrome('racecar')

运行结果:

CODE
True

8.11.3 去除字符串中所有数字

CODE
defremove_digits(s):"""去除字符串中的所有数字"""return''.join([char for char in s ifnot char.isdigit()])remove_digits('abc123def456')

运行结果:

CODE
'abcdef'

最新文章

随机文章