Skip to main content
 首页 » 编程设计

python之删除python中变量的特定部分

2025年05月04日21zhoujg

我正在寻找 python 代码以进行转换:

scaffold_356_1-1000_+__Genus_species  

进入

scaffold_356_Gen_spe 

所以我们的想法是首先在 __ 部分之后用 3 个首字母减少名称,所以从 Genus_species 到 Gen_spe

并从中删除 number-number 部分,以便删除 _1-1000_+_

感谢您的帮助:)

我实际上知道该怎么做:

import re  
name = "scaffold_356_1-1000_+__Genus_species" 
name=re.sub(r'\d+\-\d*',"",name) 
name = re.sub(r'__.__',"_",name) 

我得到:

scaffold_356_Genus_species 

请您参考如下方法:

你快到了。我会将字符串拆分为前缀和后缀并分别修改它们,然后将它们连接回去。

import re 
s = 'scaffold_356_1-1000_+__Genus_species' 
 
#Split to suffix and prefix 
suffix, prefix = s.split('__') 
#scaffold_356_1-1000_+, Genus_species 
 
#Get first three characters for prefix 
modified_prefix = '_'.join([s[0:3] for s in prefix.split('_')]) 
#Gen_spe 
 
#Do the regex replace for digits and remove the underscore and + at end of string 
modified_suffix =re.sub(r'\d+\-\d*',"",suffix).rstrip('_+\\+') 
#scaffold_356 
 
#Join the strings back 
final_s = modified_suffix  + '_' + modified_prefix 
print(final_s) 
#scaffold_356_Gen_spe