alternating string replace

Neil Cerutti mr.cerutti at gmail.com
Wed Jan 9 08:41:35 EST 2008


On Jan 9, 2008 5:34 AM, cesco <fd.calabrese at gmail.com> wrote:
> Hi,
>
> say I have a string like the following:
> s1 = 'hi_cat_bye_dog'
> and I want to replace the even '_' with ':' and the odd '_' with ','
> so that I get a new string like the following:
> s2 = 'hi:cat,bye:dog'
> Is there a common recipe to accomplish that? I can't come up with any
> solution...
>
> Thanks in advance

Hum, hum... If I had a hammer...

from pyparsing import *

word = Word(alphas)
sep = Literal('_').suppress()
pair = Group(word + sep + word)
pairs = delimitedList(pair, '_')

print ','.join(':'.join(t) for t in
               pairs.parseString('hi_cat_bye_dog').asList())

-- 
Neil Cerutti <mr.cerutti+python at gmail.com>



More information about the Python-list mailing list