using the string functions (ex. find()) on a multi-symbol string

John Machin sjmachin at lexicon.net
Wed Jun 18 00:12:23 CEST 2008


On Jun 18, 7:12 am, korean_dave <davidrey... at gmail.com> wrote:
> How can i use the find() function on a string that is composed of tons
> of symbols that cause errors...
>
> THis is my string:
>
> find("<html><head><meta name="qrichtext" content="1" /><style
> type="text/css">p, li { white-space: pre-wrap; }</style></head><body
> style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:
> 400; font-style:normal; text-decoration:none;"><p style=" margin-top:
> 0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-
> indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:
> 10pt; color:green;">Connected!</span></p></body></html>","margin")
>
> The tough part about this is that the string is dynamically produced.
> So I can't manually go into the string and eliminate the quote-marks
> or to "literal-character" them.

If as you say the string is dynamically created, your script should
have a variable name for it e.g. dynstr so all you have to do is:
   dynstr.find("margin")
Note: you should be using str methods (see http://docs.python.org/lib/string-methods.html);
almost all functionality in the string module is now deprecated and
redirected (slowly) e.g.
   def find(s, t):
      return s.find(t)

If you really want/need to put such a monster string containing both '
and " as a literal in your script, you can use triple quotes (""" or
''').

I.e.
find("""<html><head><meta name="qrichtext" ... </span></p></body></
html>""", "margin")

See http://docs.python.org/tut/node5.html#SECTION005120000000000000000

HTH,
John



More information about the Python-list mailing list