1. 字符串的基本操作
1.1 结构操作
1.1.1 拼接
• 字符串之间拼接
字符串之间的拼接使用'+'进行字符串的拼接
python
a = 'World'
b = 'Hello'
print(b + ' ' +a)
• 列表中的字符串拼接
将以分隔符','为例子
python
str = ['apple','banana']
print(','.join(str));
• 字符串中选择
通过索引进行切片操作
python
str1 = 'HelloWorld'
# 从索引 1 到索引 4 (不包括 4)
print(str1[1:4]) # 输出: ell
# 从索引 0 开始,每隔一个字符取一次
print(str1[0::2]) # 输出: Hlool
# 反转字符串
print(str1[::-1]) # 输出: dlroWolleH
1.1.2 大小写转换
注意,字符串的大小写转换是一个内置于str中的方法,所以使用str.function()的形式声明
python
str = 'World'
print(str.upper()) #转换为大写
print(str.lower()) #转换为小写
print(str.capitalize()) #首字母大写
1.1.3 去除空白
通过strip函数将字符串周边的空白部分自定义去除
python
str2 = ' Hello World '
print(str2.strip())
print(str2.lstrip()) #去除左边的空格,去除右边空格使用rstrip
1.2 字符串的分割与合并
• 分割字符串以列表的形式
python
a = 'apple,banana'
fruits = a.split(',')
使用','进行分割,最终返回
python
['apple','banana']
• 合并列表为字符串形式
将以分隔符','为例子
python
str = ['apple','banana']
print(','.join(str));
1.3 格式化
常见的格式化有两种
• format形式
根据format()之后的顺序依次填充进入{}
python
name = "John"
age = 30
info = "My name is {} and I am {} years old".format(name, age)
print(info) # 输出: My name is John and I am 30 years old
• f{}形式
这种方法更加自定义化,不用考虑填充顺序,将变量置入即可
python
name = 'Ricardo'
age = 18
print(f"Hello, I'm {name}, my age is {age}")
1.4 字符串检测
|-------------|--------------|
| startswidth | 判断末尾位置是否满足条件 |
| endswith | 判断起始位置是否满足 |
| isalpha | 判断是否为字符组成 |
| isdigit | 判断是否由数值组成 |
python
str1 = 'HelloWorld'
print(str1.startswith('Hello')) # 输出: True
print(str1.endswith('World')) # 输出: True
print(str1.isalpha()) # 输出: True
str2 = '12345'
print(str2.isdigit()) # 输出: True
2. Re中使用正则表达式
re
模块是 Python 中处理正则表达式的标准库,用于字符串的复杂模式匹配、搜索、替换等操作。通过正则表达式,你可以轻松实现复杂的文本处理需求,如验证输入、查找特定模式、替换文本等。
python
import re
2.1 常用函数
• re.match()
从字符串的起始位置开始匹配。如果匹配成功,返回 Match
对象,字符串形式;否则返回 None
python
import re
text = "hello world"
match = re.match(r'hello', text)
if match:
print("Match found:", match.group()) # 输出: Match found: hello
• re.search()
search扫描整个字符串,返回第一个匹配项
python
import re
text = "hello world"
search = re.search(r'world', text)
if search:
print("Search found:", search.group()) # 输出: Search found: world
• re.findall()
findall返回所有的匹配项,以列表的形式
python
import re
text = "The rain in Spain falls mainly in the plain"
matches = re.findall(r'in', text)
print("All matches:", matches) # 输出: All matches: ['in', 'in', 'in', 'in']
• re.sub()
sub替换文本匹配内容
python
import re
text = 'The winter is so hot'
matches = re.sub(r'winter','summer',text)
print(matches) #返回替换后的整体文本
• re.split()
与前文所述的split用法相同,将字符串进行分割,返回列表形式
python
import re
text = "apple, banana, cherry"
split_result = re.split(r', ', text)
print(split_result) # 输出: ['apple', 'banana', 'cherry']
2.2 Match对象
|---------|----------------------|
| group() | 返回匹配的字符串 |
| start() | 返回匹配的开始位置 |
| end() | 返回匹配的结束位置 |
| span() | 返回匹配的开始与结束为止,元组的形式返回 |
python
import re
text = "hello world"
match = re.search(r'world', text)
if match:
print("Matched text:", match.group()) # 输出: Matched text: world
print("Start position:", match.start()) # 输出: Start position: 6
print("End position:", match.end()) # 输出: End position: 11
print("Span:", match.span()) # 输出: Span: (6, 11)