Python 字符串(str
)是不可变的序列类型,用于存储和操作文本。以下是 Python 中常见的字符串操作,包括连接、切片、格式化,以及常用的字符串方法和正则表达式的使用。
使用 +
操作符:
str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print(result) # 输出: "Hello World"
使用 join()
方法:
words = ["Hello", "World"]
result = " ".join(words)
print(result) # 输出: "Hello World"
text = "Hello World"
# 切片从索引 0 到 4(不包括 5)
print(text[0:5]) # 输出: "Hello"
# 从索引 6 开始到末尾
print(text[6:]) # 输出: "World"
# 反向切片
print(text[-5:]) # 输出: "World"
# 步长切片(每隔一个字符)
print(text[::2]) # 输出: "HloWrd"
使用 %
操作符:
name = "Alice"
age = 30
text = "Name: %s, Age: %d" % (name, age)
print(text) # 输出: "Name: Alice, Age: 30"
使用 str.format()
方法:
text = "Name: {}, Age: {}".format(name, age)
print(text) # 输出: "Name: Alice, Age: 30"
使用 f-string (Python 3.6+):
text = f"Name: {name}, Age: {age}"
print(text) # 输出: "Name: Alice, Age: 30"
split()
: 按指定分隔符拆分字符串
text = "apple,banana,cherry"
fruits = text.split(",")
print(fruits) # 输出: ['apple', 'banana', 'cherry']
join()
: 用指定分隔符连接列表中的字符串
fruits = ['apple', 'banana', 'cherry']
result = ", ".join(fruits)
print(result) # 输出: "apple, banana, cherry"
replace()
: 替换字符串中的某部分
text = "Hello World"
result = text.replace("World", "Python")
print(result) # 输出: "Hello Python"
find()
和 index()
: 查找子字符串的位置
text = "Hello World"
pos = text.find("World") # 返回 6
pos = text.index("World") # 返回 6,如果未找到则抛出异常
strip()
: 去除字符串首尾的空白字符(lstrip()
去除左侧空白,rstrip()
去除右侧空白)
text = " Hello World "
result = text.strip() # 输出: "Hello World"
upper()
和 lower()
: 转换为全大写或全小写
text = "Hello World"
print(text.upper()) # 输出: "HELLO WORLD"
print(text.lower()) # 输出: "hello world"
startswith()
和 endswith()
: 判断字符串是否以特定前缀或后缀开头/结尾
text = "Hello World"
print(text.startswith("Hello")) # 输出: True
print(text.endswith("World")) # 输出: True
Python 的 re
模块提供了正则表达式功能。
匹配正则表达式: re.match()
import re
pattern = r"^Hello"
text = "Hello World"
match = re.match(pattern, text)
if match:
print("Match found") # 输出: "Match found"
搜索正则表达式: re.search()
match = re.search(r"World$", text)
if match:
print("Match found") # 输出: "Match found"
替换: re.sub()
result = re.sub(r"World", "Python", text)
print(result) # 输出: "Hello Python"
查找所有: re.findall()
text = "apple, banana, cherry"
fruits = re.findall(r"\b\w+\b", text)
print(fruits) # 输出: ['apple', 'banana', 'cherry']
编译正则表达式: re.compile()
pattern = re.compile(r"^Hello")
match = pattern.match(text)
if match:
print("Match found") # 输出: "Match found"
capitalize()
: 将字符串的第一个字符转换为大写。
text = "hello world"
print(text.capitalize()) # 输出: "Hello world"
title()
: 将字符串的每个单词的首字母转换为大写。
text = "hello world"
print(text.title()) # 输出: "Hello World"
count()
: 返回子字符串在字符串中出现的次数。
text = "banana"
print(text.count("a")) # 输出: 3
isalnum()
: 判断字符串是否只包含字母和数字。
text = "hello123"
print(text.isalnum()) # 输出: True
isalpha()
: 判断字符串是否只包含字母。
text = "hello"
print(text.isalpha()) # 输出: True
isdigit()
: 判断字符串是否只包含数字。
text = "12345"
print(text.isdigit()) # 输出: True
isspace()
: 判断字符串是否只包含空白字符。
text = " "
print(text.isspace()) # 输出: True
掌握 Python 中的字符串操作和正则表达式可以大大提高你的文本处理能力。了解如何切片、格式化、查找、替换字符串,并熟练使用正则表达式将使你在数据清洗、文本解析等任务中更加得心应手。