1.字符串切片操作:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#######################################字符串切片基本操作########################################
string = 'nihao!nichenshishui,wo ischenwei,word123'
print("切片2到10位:",string[2:10])
print("切片2到10位,步长值3:",string[2:10:3])#语法:序列名[开始位置:结束位置:步长]
print("切片前5个元素:",string[:5])
print("从第5个元素切片:",string[5:])
print("显示所有:",string[:])
print("从最后提取元素,步长值为3",string[::-3])
print("截取最后4个到最后1个的元素:",string[-4:-1:])
print("不显示最后4个元素:",string[:-4])
print("只显示最后4个元素:",string[-4:])
print("获取最后8位到最后1位的元素,步长值位2",string[-8:-1:2])
###################################结合函数完成切片##############################################
string1 = 'nihao!nichenshishui,wo ischenwei,word123'
pos=string1.index('chenwei')#查询位置(下标)
print("显示下标后的字符,包含查询的字符串:",string1[pos:])
name="chenwei"
pos=string1.index('chenwei')
print("显示下标后的字符,不包含查询的字符串:",string1[pos+len(name):])
2.函数查询字符串:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
########################查看指定字符串的位置和值(位置可通过切片获取值)###################################
str='https://s2.loli.net/2022/06/06/s5Z7iGjQv4DtSbI.png'
aa='/'
#查看最右侧
print(str[str.rfind('/'):])#查看最右侧/后的数据(包含本身)
print(str[str.rfind('/')+1:])#查看最右侧/后的数据(不包含本身)
print(str[str.rfind(aa)+len(aa):])#查看最右侧/后的数据(不包含本身,通过变量处理)
print(str[0:str.rfind('/')])#查看最右侧/前的数据
#查看最左侧
print(str[0:str.find('/')])#查看最左侧/前的数据
print(str[str.find('/')+2:])#查看最左侧/后的数据
#查询字符串下标
str='http://wwww.baidu.com_bai.ppp'
print(str.find('bai')) #第一次出现指定字符串的位置
print(str.rfind('bai')) #最后一次出现指定字符串的位置
print(str[str.rfind('bai'):]) #获取指定最后一次字符串、后的内容
###############################在字符串中指定字符_并获取左右字符串####################################
str1 = "Hello_python"
print (str1.index('_'));#查询位置(下标)
print (str1[:str1.index('_')])#获取 "_"之前的字符(不包下划线) 结果 Hello
print (str1[3:str1.find('_'):])#获取"_"之前,且前3位不显示
print (str1[:str1.find('py')][-4:])#获取py前数据,且对数据截取后4位
print (str1[str1.find('_'):])#获取 "_"之后的字符(包下划线) 结果_python
print (str1[str1.find('_')+3:])#获取"_"之后,并向后移3位
print (str1[str1.find('_')+1:str1.find('hon')])#获取区间值(很实用)
#####################################查询字符次数、下标############################################
string ='nihao!nichenshishui,wo ischenwei,word123'
print("查询chen在string字符串中位置:",string.find("chen"))
print("从下标10以后查询chen在string字符串中位置:",string.find("chen",10))
print("chen在string中出现的次数:",string.count('chen'))#查询c出现的次数
print("从第2个下标统计chen出现的次数:",string.count('chen',2,len(string)))#从第2个下标统计chen出现的次数(len为结束位置)
print("把字符串变成100个字符串长度,不够用*填充:",string.center(100,'*'))
#############################查询字符在字符串中出现的位置(列表方式显示位置)#############################
string = 'nihao!nichenshishui,wo ischenwei,word123'
char = 'chen'
positions = [index for index, _ in enumerate(string) if string[index:index+len(char)] == char]
if positions:
print(f"字符 '{char}' 在字符串中的位置:{positions}")
else:
print(f"字符串中没有找到字符 '{char}'")
3.常用方法小结:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
###############################去除空格##########################################
string = ' nihao!nichenshishui,wo ischenwei,word123 '
string1 = '##nihao!nichenshishui,wo ischenwei,word123%%'
string2 = 'cccnihao!nichenshishui,wo ischenwei,word123ccc'
print("删除左右两端空格:",string.strip())#默认为空格
print("删除左右两端,指定字符:",string2.strip("ccc"))
print("删除右侧指定字符串:",string1.rstrip("%"))#不传默认为空格
print("删除左侧指定字符串:",string2.lstrip("ccc"))#不传默认为空格
#############################字符串中字母大小写转换################################
string = 'ZZ#nihao!nichenshGPTishui,wo ischenwei,word12WWB3%%'
print("大写转小写:",string.lower())
print("小写转大写:",string.upper())
print("大小写互换:",string.swapcase())
print("首字母大写:",string.capitalize())
#############字符串的测试、判断函数,这一类函数在string模块中没有,这些函数返回的都是bool值###########
string = 'ZZ#nihao!nichenshGPTishui,wo ischenwei,word12WWB3%%'
print("判断字符串是否以ZZ#开头:",string.startswith ('ZZ#'))
print("判断字符串是否以%%结尾:",string.endswith('%%'))
print("test123chen456".isalnum()) #是否全是字母和数字,并至少有一个字符
print("1212555".isalpha()) #是否全是字母,并至少有一个字符
print(string.isdigit()) #是否全是数字,并至少有一个字符
print(string.isspace()) #是否全是空白字符,并至少有一个字符
print(string.isspace()) #中的字母是否全是小写
print(string.isupper()) #中的字母是否便是大写
print("Treeee".istitle()) #是否是首字母大写的
##############################替换操作########################################
#replace查找替换,不指定次数替换,即:全部替换。
x=string.replace("chen","晚上")
x1=string.replace("chen","晚上好",1)#指定替换次数(从左侧开始)
print("全部替换:",x)
print("指定替换次数:",x1)
###########################################字符串分割(变成list)##############################################
string = 'ZZ#nihao!,nichensh,GPT ishui,wo ischenwei,word12WWB3%%'
print("用逗号分隔字符串:",string.split(","))
print("默认分割字符串:",string.split())#默认为空格分隔
##########################################字符串连接(list变字符串)############################################
lista=['ZZ#nihao!', 'nichensh', 'GPT ishui', 'wo ischenwei', 'word12WWB3%%']
print("list转字符串:", ",".join(lista))
4.正则处理字符串:
################################################################正则匹配字符串############################################################################
import re
jsonaa={"at": {"atMobiles": [{"time": "2024-01-24", "name": "测试用例001"}]}, "markdown": {"title": "小麻雀接口报警", "text": "#### {'任务名称': 'dsdk_接口1', '用例总数': 1, '成功用例': 0, '未执行': 0, '失败用例': 1}"}, "msgtype": "markdown"}
str_json=str(jsonaa)#把字典转成字符串类型
print(str_json)
#########正则表达式: findall匹配
rr = re.findall(r"name': '(.+?)'", str_json)
print(rr)
#########正则表达式: search匹配
res = re.search(r'#### (.+?)"',str_json)
print(res)
print(res.group(0)) #返回整个匹配到的子串,即正则表达式模式匹配到的完整字符串。
print(res.group(1)) #返回第一个捕获组的匹配结果