[Tutor] need to clean a string
Andreas Kostyrka
andreas at kostyrka.org
Mon Dec 15 20:31:12 CET 2008
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
More information about the Tutor
mailing list