[Tutor] need to clean a string
johnf
jfabiani at yolo.com
Mon Dec 15 21:43:46 CET 2008
On Monday 15 December 2008 11:31:12 am Andreas Kostyrka wrote:
> Am Mon, 15 Dec 2008 10:18:28 -0800
>
> schrieb johnf <jfabiani at yolo.com>:
> > Hi,
> > I have a string that I need to extract just the sql
> > statement. The following is the string
> > \000\000\000\000\000\000\000\000.\000\000\000\0000\000\000\000
> >
> > \000$\000\000\000\000\000(\000\000\000\000X\000\000\000\000\000,
> > \000\000\000\000P\000\000\000\000\000Q\000\000\000\000\000R\000
> > \000\000\000\000/\000\000\000�\000\000\000\000%����\000\000\000
> > \000'����\000\000\000\000+brttyp\000�\000\000\000\000*SELECT
> > Brttyp.ctrscode, Brttyp.cdescript, Brttyp.ctrstype, Brttyp.cstatus,
> > Brttyp.lreqno, Brttyp.dcreate FROM brttyp Brttyp WHERE
> > Brttyp.ctrscode = ( ?gcKey1 )\000\000\000\000\000
> > AMCONNECT\000\000\000\000\000) \000\000\000\000
\000\000\000
> > \000\000\000\000BR Transaction Code File\000
> >
> > How can I get rid of all the junk?
> >
> > I can find the '*' with str.find('*') but I can't use find '\000' to
> > get to the end?
>
> str.find has an optional second parameter specifying the start where to
> search:
>
> Given the above string as str, you can do:
>
> start_pos = str.find('*')
> sql = None
> if start_pos != -1:
> end_pos = str.find('\0', start_pos)
> if end_pos == -1:
> end_pos = len(str)
> sql = str[start_pos:end_pos]
>
> Andreas
Thanks I got it done just as you explained. What was interesting was my
editor showed '\x000' and not '\000' so I was always looking for the wrong
thing. I thought I was doing it wrong. Then while re-reading the message I
sent to this list I noticed the lack of the 'x'. And sure enough that was
the problem. Thanks for your help.
--
John Fabiani
More information about the Tutor
mailing list