字符定位

四种方式找到某个字符位置

索引值定位

使用索引值获取指定字符位置

1
2
3
4
string = "Hello, World!"
index = 7
char = string[index]
print(char) # 输出 'W'

切片定位

通过切片获取指定字符位置

1
2
3
4
string = "Hello, World!"
index = 7
char = string[index:index+1]
print(char) # 输出 'W'

find()定位

使用字符串的find()方法获取指定字符位置

1
2
3
4
string = "Hello, World!"
char = 'W'
index = string.find(char)
print(index) # 输出 7

正则定位

使用正则表达式获取指定字符位置

1
2
3
4
5
6
7
8
9
10
import 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. 截取第1个·第4个的字符
    1
    str[0:4] # 输出:床前明月
  2. 截取字符串的全部字符
    1
    str[:] # 输出:床前明月光,疑是地上霜
  3. 截取从第7个字符最后1个字符之间的字符,不包括第1个字符,包括最后一个字符
    1
    str[6:] # 输出:疑是地上霜
  4. 截取从第1个字符倒数第3个字符之间的字符,包括第1个字符,不包括最后一个字符
    1
    str[:-3] # 输出:床前明月光,疑是
  5. 截取第3个字符
    1
    str[2] # 输出:明
  6. 截取倒数第1个字符
    1
    str[-1] # 输出:霜
  7. 与原字符串顺序相反
    1
    str[::-1] # 输出:霜上地是疑,光月明前床
  8. 截取倒数第3个倒数第1个之间的字符,包括倒数第3个字符,不包括最后一个字符
    1
    str[-3:-1] # 输出:地上
  9. 截取倒数第3个最后1个字符,包括倒数第3个字符,包括最后一个字符
    1
    str[-3:] # 输出:地上霜
  10. 截取第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. 去掉前面的['
    1
    str.split("['")[-1] # 输出:床前明月光,疑是地上霜']
  2. 去掉后面的']
    1
    str.split("']")[0] # 输出:['床前明月光,疑是地上霜
  3. 截取[' ']里的内容
    1
    str.split("['")[-1].split("']")[0] # 输出:床前明月光,疑是地上霜

案例

1
str = "1,2,3,4,5,6,7"
  1. 获取倒数第1个逗号后面的字符串
    1
    str.rsplit(",")[-1] # 输出:7
  2. 获取倒数第1个逗号前面的字符串(不包含最后一个逗号)
    1
    2
    3
    4
    5
    6
    str[:str.rfind(',')] # 输出:1,2,3,4,5,6



    import re
    result = re.match(r'(.*),', str).group(1) # 输出:1,2,3,4,5,6
  3. 获取倒数第1个逗号后面的字符串(包含最后一个逗号)
    1
    str[str.rfind(','):] # 输出:,7
  4. 获取倒数第1个逗号后面的字符串(不包含最后一个逗号)
    1
    str[str.rfind(',')+1:] # 输出:7
  5. 获取倒数第2个逗号前面的字符串
    1
    str[:str.rfind(',')] # 输出:1,2,3,4,5,6
  6. xxxxx
    1

  7. xxxxx
  8. xxxxx