cookbook1.9 简化字符串t'ranslate方法的使用

#-*- coding: utf-8 -*-

import string
def translator(frm='', to='', delete='', keep=None):
    if len(to) == 1:
        to = to * len(to)
    trans = string.maketrans(frm, to)
    
    if keep is not None:
        allchars = string.maketrans('', '')
        delete = allchars.translate(allchars, keep.translate(allchars, delete))
        
    def translate(s):
        return s.translate(trans, delete)
    
    return translate


if '__main__' == __name__:
    
    #选出属于指定集合的字符
    print string.digits
    digits_only = translator(keep = string.digits)
    print digits_only('Chris Perkins:224-7992')
    
    #移除属于某字符集合的元素
    no_digits = translator(delete=string.digits)
    print no_digits('Eric chen: 1234-5678')  
    
    #用某个字符替换属于某指定集合的字符
    digits_to_hash = translator(frm=string.digits, to='*')
    print digits_to_hash('Eric chen: 1234-5678') 

你可能感兴趣的:(字符串)