首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中去掉字符串的边

在python中去掉字符串的边
EN

Stack Overflow用户
提问于 2012-09-13 17:59:47
回答 4查看 167关注 0票数 1

我有一个这样的清单:

Tomato4439,>gi|224089052|ref|XP_002308615.1|预测三果杨蛋白

我想用python去掉不想要的字符,这样列表看起来就像:番茄、三果杨。

对于第一个问题,我可以做以下几点:

代码语言:javascript
运行
复制
name = ">Tomato4439"
name = name.strip(">1234567890")
print name
Tomato

不过,我不知道如何处理第二个问题。如有任何建议,将不胜感激。

EN

回答 4

Stack Overflow用户

发布于 2012-09-13 18:06:55

代码语言:javascript
运行
复制
>>> import re
>>> line = "Tomato4439, >gi|224089052|ref|XP_002308615.1| predicted protein [Populus trichocarpa]"
>>> match = re.match("^([a-zA-Z]+).*\[([a-zA-Z ]+)\].*",line)
>>> match.groups()
('Tomato', 'Populus trichocarpa')

编辑不包括第二部分的[] .这应该适用于任何与查询模式相匹配的事物(例如以名称开头,以[]结尾)--例如,它也将与"Tomato4439, >gi|224089052|ref|XP_002308615.1| predicted protein [Populus trichocarpa apples]"匹配

票数 1
EN

Stack Overflow用户

发布于 2012-09-13 18:07:11

代码语言:javascript
运行
复制
import re
a = "Tomato4439, >gi|224089052|ref|XP_002308615.1| predicted protein [Populus trichocarpa]"
re.sub(r"^([A-Za-z]+).+\[([^]]+)\]$", r"\1 \2", a)

这给了我们

代码语言:javascript
运行
复制
'Tomato Populus trichocarpa'
票数 1
EN

Stack Overflow用户

发布于 2012-09-13 18:07:16

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12412116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档