在字符串中滑动窗口查找特定字母组合并计数。Python
如果你有一个序列,然后你创建一个大小为4的窗口列表。在每个窗口中,你要寻找特定的排列。
#Example:
count=0
test='abcdaecdagcd'
windows=['abcd','bcda','cdae','daec','aecd','ecda','cdag','dagc','agcd']
我在寻找一个特定的模式,格式是 a-[b 或 e]-*-d,在这个序列中,我想统计它出现的次数。
比如 'abcd' 和 'aecd' 都符合这个模式,因为它们都可以看作是 'a-[b 或 e]-(这个位置不重要)-d',这样就可以把计数加2,所以在函数处理完之后,计数就是2。
1 个回答
1
一个字符串 'a(b or e)*d' 不能在另一个字符串 'a(b or e)*d' 的开头出现。因此,这种类型的字符串在较长的字符串中是不能重叠的,这样我们就可以用正则表达式来找到你需要的内容:
import re
ss = 'abcdaecdagcd'
regx = re.compile('a[be].d')
print regx.findall(ss)
print len(regx.findall(ss))
结果
['abcd', 'aecd']
2