我在Python中有一个unicode字符串,基本上需要逐个字符地完成,并根据规则列表替换某些字符串.其中一条规则是将a
其改为ö
if a
后n
.此外,如果一行中有两个元音字符,它们将被一个元音字符替换:
.所以,如果我有字符串"natarook"
,最简单,最有效的方法是"nötaro:k"
什么?如果重要的话,使用Python 2.6和CherryPy 3.1.
编辑:连续两个元音的意思是相同的元音(oo,aa,ii)
# -*- coding: utf-8 -*- def subpairs(s, prefix, suffix): def sub(i, sentinal=object()): r = prefix.get(s[i:i+2], sentinal) if r is not sentinal: return r r = suffix.get(s[i-1:i+1], sentinal) if r is not sentinal: return r return s[i] s = '\0'+s+'\0' return ''.join(sub(i) for i in xrange(1,len(s))) vowels = [(v+v, u':') for v in 'aeiou'] prefix = {} suffix = {'na':u'ö'} suffix.update(vowels) print subpairs('natarook', prefix, suffix) # prints: nötaro:k prefix = {'na':u'ö'} suffix = dict(vowels) print subpairs('natarook', prefix, suffix) # prints: öataro:k