【Python基础篇】定位字符串位置、字符串截取
字符定位
四种方式找到某个字符位置
索引值定位
使用索引值
获取指定字符位置1
2
3
4string = "Hello, World!"
index = 7
char = string[index]
print(char) # 输出 'W'
切片定位
通过切片
获取指定字符位置1
2
3
4string = "Hello, World!"
index = 7
char = string[index:index+1]
print(char) # 输出 'W'
find()定位
使用字符串的find()方法获取指定字符位置1
2
3
4string = "Hello, World!"
char = 'W'
index = string.find(char)
print(index) # 输出 7
正则定位
使用正则表达式获取指定字符位置1
2
3
4
5
6
7
8
9
10import re
string = "Hello, World!"
char = 'W'
match = re.search(re.escape(char), string)
if match:
index = match.start()
print(index) # 输出 7
else:
print("字符未找到")
字符串截取
根据“下标”截取
1 | str = "床前明月光,疑是地上霜" |
- 截取
第1个·
到第4个
的字符1
str[0:4] # 输出:床前明月
- 截取字符串的
全部字符
1
str[:] # 输出:床前明月光,疑是地上霜
- 截取从
第7个字符
到最后1个字符
之间的字符,不包括第1个字符,包括最后一个字符1
str[6:] # 输出:疑是地上霜
- 截取从
第1个字符
到倒数第3个字符
之间的字符,包括第1个字符,不包括最后一个字符1
str[:-3] # 输出:床前明月光,疑是
- 截取
第3个
字符1
str[2] # 输出:明
- 截取
倒数第1个
字符1
str[-1] # 输出:霜
- 与原字符串
顺序相反
1
str[::-1] # 输出:霜上地是疑,光月明前床
- 截取
倒数第3个
与倒数第1个
之间的字符,包括倒数第3个字符,不包括最后一个字符1
str[-3:-1] # 输出:地上
- 截取
倒数第3个
到最后1个字符
,包括倒数第3个字符,包括最后一个字符1
str[-3:] # 输出:地上霜
- 截取
第1个字符
到第8个字符
,每隔2个字符截取一次1
str[0:8:2] # 输出:床明光疑
切片截取
1 | 表达式:str[ begin : end : step ] |
str:字符串 / 列表
begin:切片的起始位置。默认为 0
end:切片的截止位置。默认为 -1,且包含 -1
step:切片的间隔。step不能为0,默认为1(大于0 则从左往右切,小于0 从右往左切)
根据“所含字符”截取
1 | str = "['床前明月光,疑是地上霜']" |
- 去掉前面的
['
1
str.split("['")[-1] # 输出:床前明月光,疑是地上霜']
- 去掉后面的
']
1
str.split("']")[0] # 输出:['床前明月光,疑是地上霜
- 截取
[' ']
里的内容1
str.split("['")[-1].split("']")[0] # 输出:床前明月光,疑是地上霜
案例
1 | str = "1,2,3,4,5,6,7" |
- 获取
倒数第1个
逗号后面
的字符串1
str.rsplit(",")[-1] # 输出:7
- 获取
倒数第1个
逗号前面
的字符串(不包含最后一个逗号)1
2
3
4
5
6str[:str.rfind(',')] # 输出:1,2,3,4,5,6
或
import re
result = re.match(r'(.*),', str).group(1) # 输出:1,2,3,4,5,6 - 获取
倒数第1个
逗号后面
的字符串(包含最后一个逗号)1
str[str.rfind(','):] # 输出:,7
- 获取
倒数第1个
逗号后面
的字符串(不包含最后一个逗号)1
str[str.rfind(',')+1:] # 输出:7
- 获取
倒数第2个
逗号前面
的字符串1
str[:str.rfind(',')] # 输出:1,2,3,4,5,6
- xxxxx
1
- xxxxx
- xxxxx
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 学弟不想努力了!
评论