python replace/sub/wildcard/regex issue
clp2 at rebertia.com
Tue Jan 19 05:40:46 CET 2010
On Mon, Jan 18, 2010 at 8:31 PM, Chris Rebert <clp2 at rebertia.com> wrote:
> On Mon, Jan 18, 2010 at 8:04 PM, tom <badouglas at gmail.com> wrote:
>> trying to figure out how to solve what should be an easy python/regex/
>> wildcard/replace issue.
>> i've tried a number of different approaches.. so i must be missing
>> my initial sample text are:
>> Soo Choi</span>LONGEDITBOX">Apryl Berney
>> Soo Choi</span>LONGEDITBOX">Joel Franks
>> Joel Franks</span>GEDITBOX">Alexander Yamato
>> and i'm trying to get
>> Soo Choi foo Apryl Berney
>> Soo Choi foo Joel Franks
>> Joel Franks foo Alexander Yamato
>> the issue i'm facing.. is how to start at "</" and end at '">' and
>> substitute inclusive of the stuff inside the regex...
>> i've tried derivations of
>> name=re.sub("</s[^>]*\">"," foo ",name)
>> but i'm missing something...
>> thoughts... thanks
> "Some people, when confronted with a problem, think 'I know, I'll use
> regular expressions.' Now they have two problems."
> Assuming your sample text is representative of all your test:
> new_text = "\n".join(line[:line.index('<')] + line[line.rindex('>')+1:] for line in your_text.split('\n'))
Erm, remembering to intersperse the "foo" (should be all 1-line, bloody Gmail):
new_text = "\n".join(line[:line.index('<')] + " foo " +
line[line.rindex('>')+1:] for line in your_text.split('\n'))
Or just use alex23's method, which seems all-round superior. :-)
More information about the Python-list