如何提取含点字符串首尾点间内容?split函数是否适用及用法?
问题解答
能不能用split函数?
当然适合。这类文件名都是用.做分隔符的固定结构,split函数可以直接把字符串拆成按点分开的片段列表,只要截取中间部分再拼回去就能得到想要的结果。
具体怎么操作(拿Python举例)
先假设有这么一批文件名:
filenames = [ "abc.xx.klm", "abc.xx.xx.klm", "abc.xx.xx.x.klm" ]
对每个文件名按这三步来:
- 用
split('.')把文件名拆成列表:- 比如
"abc.xx.klm"拆完是["abc", "xx", "klm"] "abc.xx.xx.klm"拆完是["abc", "xx", "xx", "klm"]
- 比如
- 跳过列表里第一个元素(要去掉的前缀)和最后一个元素(要去掉的后缀),取中间的所有片段
- 用
.把这些中间片段重新拼成字符串
代码写出来是这样:
result = [] for name in filenames: parts = name.split('.') # 取中间部分:从索引1到倒数第二个元素(不包含最后一个) middle = parts[1:-1] result.append('.'.join(middle)) # 打印结果 for res in result: print(res)
跑起来就会输出:
xx xx.xx xx.xx.x
额外提醒
如果遇到不符合规范的文件名(比如点的数量不够),可以加个判断防止出错:
result = [] for name in filenames: parts = name.split('.') # 只有当分割后的片段数大于2时,才提取中间部分 if len(parts) > 2: middle = parts[1:-1] result.append('.'.join(middle)) else: # 这里可以根据需求处理,比如返回空字符串或者原文件名 result.append('')
内容的提问来源于stack exchange,提问作者Su Fani
相关产品推荐
相关产品推荐

