以给定的起止字符,分割字符串

def split_with_start_end(strings,start_with,end_with):
	'''
	建议使用关键词参数的方式输入参数
	strings参数为字符串
	start_with参数必须为单个字符
	end_with参数必须为单个字符,且不同于start_with参数
	输出结果为列表
	'''
	strings_dict={};
	start_index=[];
	end_index=[];
	strings_index=0;
	target_str_list=[]
	for i in strings:
		strings_dict[strings_index]=i
		if i==start_with:
			start_index.append(strings_index)
		if i==end_with:
			end_index.append(strings_index)
		strings_index+=1
	for a in range(len(start_index)):
		print(start_index[a],end_index[a])
		strs=strings[start_index[a]+1:end_index[a]];print(strs)
		target_str_list.append(strs)
	return target_str_list

我知道这个自定义函数有冗余,应该就是关于把字符串转成字典那部份的内容了。

刚开始的时候本来打算:

1,先把字符串转成“索引:字符”格式的字典,

2,遇到能够匹配到起止符的,分别将起止符的索引值存进对应的列表中

3,再按照起止符的索引值形成的范围,作为字典的key范围,输出对应的字符,形成起止符之间的字符串,并存入到最终的字符串列表中

做着做着发现,好像并不需要用到遍历字符串时形成的字典,而是可以直接通过文字索引来切割原始字符串。

所以就有了现在这个版本的自定义函数。

ps,这里通过把起始符索引+1,避免了python切割“含头不含尾”特性,所导致的字符串会包含起始符的情况

局限性:

当然,这个自定义函数还有其他很多情况并没有考虑进去。

比如说如果需要多个字符作为起始符该怎么运算,

以及如果把空格设置为了起始符或者终止符,碰上英语字符串应该会非常尴尬等情况。

后续如果有需要,我应该也会继续完善这个自定义函数吧。

也欢迎大家指点拍砖~

m(_ _)m

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值