Ben Cartwright wrote: > Ben Cartwright wrote: > > orangeDinosaur wrote: > > > I am encountering a behavior I can think of reason for. Sometimes, > > > when I use the .strip module for strings, it takes away more than what > > > I've specified. For example: > > > > > > >>> a = ' <TD WIDTH=175><FONT SIZE=2>Hughes. John</FONT></TD>\r\n' > > > > > > >>> a.strip(' <TD WIDTH=175><FONT SIZE=2>') > > > > > > returns: > > > > > > 'ughes. John</FONT></TD>\r\n' > > > > > > However, if I take another string, for example: > > > > > > >>> b = ' <TD WIDTH=175><FONT SIZE=2>Kim, Dong-Hyun</FONT></TD>\r\n' > > > > > > >>> b.strip(' <TD WIDTH=175><FONT SIZE=2>') > > > > > > returns: > > > > > > 'Kim, Dong-Hyun</FONT></TD>\r\n' > > > > > > I don't understand why in one case it eats up the 'H' but in the next > > > case it leaves the 'K' alone. > > > > > > That method... I do not think it means what you think it means. The > > argument to str.strip is a *set* of characters, e.g.: > > > > >>> foo = 'abababaXabbaXabababbbb' > > >>> foo.strip('ab') > > 'XabbaX' > > >>> foo.strip('aabababaab') # no difference! > > 'XabbaX' > > > > For more info, see the string method docs: > > http://docs.python.org/lib/string-methods.html > > To do what you're trying to do, try this: > > > > >>> prefix = 'hello ' > > >>> bar = 'hello world!' > > >>> if bar.startswith(prefix): bar = bar[:len(prefix)] > > ... > > >>> bar > > 'world!' > > > Apologies, that should be: > >>> prefix = 'hello ' > >>> bar = 'hello world!' > >>> if bar.startswith(prefix): bar = bar[len(prefix):] > ... > >>> bar > 'world!' >
or instead of: a.strip(' <TD WIDTH=175><FONT SIZE=2>') use: a.replace(' <TD WIDTH=175><FONT SIZE=2>','') Iain -- http://mail.python.org/mailman/listinfo/python-list