频道栏目
首页 > 程序开发 > Web开发 > Python > 正文
让Python的字符串支持“findall”
2012-06-02 14:05:09      个评论      
收藏   我要投稿

最近在写程序时,出现了这样一个需求,查找出字符串中所有指定的关键词,str.find()只能找到一个,我想着标准库中应该有findall之类的函数吧,结果没找到,于是自己实现了一个,代码如下:


 

class super_str(str):
    """add support for findall()"""
    def __init__(self, arg):
        super(super_str, self).__init__()
        self.body = arg
 
    def findall(self, arg, start=0):
        body = self.body
        result = []       
        while True:
            pos = body.find(arg, start)
            if pos >= 0:
                result.append(pos)
                start = pos + len(arg)
                #body = body[pos+len(arg):]
                continue
            break
        return result
使用很简单
 

s = super_str('nihaoa')
print s.findall('a')
 
>>>[3, 5]

 


摘自 python.cn

点击复制链接 与好友分享!回本站首页
相关TAG标签 字符串
上一篇:python中print的不换行即时输出解决方案
下一篇:Python网络编程测试-Email初探
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站