在python中剥离字符串的边

2024-09-30 14:37:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个清单:

Tomato4439, >gi|224089052|ref|XP_002308615.1| predicted protein [Populus trichocarpa]

我想使用python删除不需要的字符,这样列表将如下所示: 番茄 毛果杨

对于第一个问题,我可以执行以下操作:

name = ">Tomato4439"
name = name.strip(">1234567890")
print name
Tomato

不过,我不知道第二个怎么办。任何建议都将不胜感激。在


Tags: nameref列表字符xpstripprint番茄
3条回答
import re
a = "Tomato4439, >gi|224089052|ref|XP_002308615.1| predicted protein [Populus trichocarpa]"
re.sub(r"^([A-Za-z]+).+\[([^]]+)\]$", r"\1 \2", a)

这给了

^{pr2}$

给予:

s='Tomato4439, >gi|224089052|ref|XP_002308615.1| predicted protein [Populus trichocarpa]'

这个:

^{pr2}$

会给你

['Tomato', 'Populus', 'trichocarpa']

如果您经常这样做,那么研究正则表达式可能是值得的,而且“规则”可能不是静态的,因为在这种情况下,正则表达式处理数据的灵活性要高得多。对于您提出的示例问题,这将是有效的。在

如果您尝试解析的字符串在语义上是一致的,那么您最好的选择可能是对不同的字符串“类型”进行分类,然后使用python的re模块创建正则表达式来解析它们。在

相关问题 更多 >