Found this in pypy!

# Match any flavor of string; /*the terminating quote is optional*/
# so that we're robust in the face of incomplete program text.

_match_stringre = re.compile(r"""
   \""" [^"\\]* (?:
                    (?: \\. | "(?!"") )
                    [^"\\]*
                )*
   (?: \""" )?

|   " [^"\\\n]* (?: \\. [^"\\\n]* )* "?

|   ''' [^'\\]* (?:
                  (?: \\. | '(?!'') )
                  [^'\\]*
               )*
   (?: ''' )?

|   ' [^'\\\n]* (?: \\. [^'\\\n]* )* '?
""", re.VERBOSE | re.DOTALL).match

Problem solved.

Ken


Ken Seehart wrote:

I found this:
   http://code.activestate.com/recipes/475109/

But it is incorrect in some cases, such as:
*
"foo \" bar"*  / (incorrectly matches "foo \")/
*
'''*     /(incorrectly matches the second two single quotes)/

*" foo
  bar "*  / (incorrectly matches quote containing newline/)

Anyone know a regular expression that correctly matches python string literals?

Thanks in advance,
Ken


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to