Problem:
如题
Solution:
一个简单的工厂类方法:
import string
def translator(frm='', to='', delete='', keep=None)
if len(to)=1:
to = to * len(frm)
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
discussion:
该工厂类的用法:
1.保留string 中的数字部分
>>> digits_only = translator(keep=string.digits)
>>> digits_only('Chris Perkins : 224-7992')
'2247992'
如题
Solution:
一个简单的工厂类方法:
import string
def translator(frm='', to='', delete='', keep=None)
if len(to)=1:
to = to * len(frm)
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
discussion:
该工厂类的用法:
1.保留string 中的数字部分
>>> digits_only = translator(keep=string.digits)
>>> digits_only('Chris Perkins : 224-7992')
'2247992'

浙公网安备 33010602011771号