首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除表达式的第一次出现之间的字符?

如何删除表达式的第一次出现之间的字符?
EN

Stack Overflow用户
提问于 2014-08-24 13:04:57
回答 2查看 490关注 0票数 0

我会用一个例子来解释我想要的。我在研究DNA序列。假设我想在字符串中删除GUACAG(包括GUACAG)之间的所有内容。所以如果输入是:"AAAAGUAGGGGCAGCAGUUUUUGUAAAAACAG"

输出应该是:["AAAA","CAGUUUUU"]。我最初使用的是re.split(r'GUA\w*CAG',a),但返回的是["AAAA"]。它似乎是查找字符串中CAG的最后一次出现,而不是第一次出现。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-24 13:08:43

在regex中,默认情况下,*+?greedy

如果你不想那样做,使用他们的非贪婪的对应者*?+???

代码语言:javascript
复制
re.split(r'GUA\w*?CAG',a)

请参阅https://docs.python.org/2/library/re.html#regular-expression-syntax

票数 2
EN

Stack Overflow用户

发布于 2014-08-24 13:12:43

您需要添加一个量词?,而且最好使用.*?而不是\w*?,因为\w只匹配单词charcters。

代码语言:javascript
复制
>>> import re
>>> s = "AAAAGUAGGGGCAGCAGUUUUUGUAAAAACAG"
>>> m = re.split(r'GUA.*?CAG', s)
>>> m
['AAAA', 'CAGUUUUU', '']
>>> [x for x in m if x]
['AAAA', 'CAGUUUUU']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25472003

复制
相关文章

相似问题

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