REGEX-Cadena y cotización escapada

¿Cómo obtener lo que está entre las citas en los siguientes dos textos?

text_1 = r""" "Some text on \"two\" lines with a backslash escaped\\" \ + "Another text on \"three\" lines" """ text_2 = r""" "Some text on \"two\" lines with a backslash escaped\\" + "Another text on \"three\" lines" """ 

El problema para mí es que las citas deben ignorarse si se escapan, pero existe la posibilidad de que se escape la barra invertida.

Me gustaría obtener los siguientes grupos.

 [ r'Some text on \"two\" lines with a backslash escaped\\', r'Another text on \"three\" lines' ] 

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

coincide con una cadena entrecomillada, incluidos los caracteres de escape que aparecen dentro de ella.

Explicación:

 " # Match a quote. (?: # Either match... \\. # an escaped character | # or [^"\\] # any character except quote or backslash. )* # Repeat any number of times. " # Match another quote. 

Combina todo menos una cita doble:

 import re text = "Some text on \"two\" lines" + "Another text on \"three\" lines" print re.findall(r'"([^"]*)"', text) 

Salida

 ['two', 'three'] 
 >>> import re >>> text = "Some text on\n\"two\"lines" + "Another texton\n\"three\"\nlines" >>> re.findall(r'"(.*)"', text) ["two", "three"] 
 >>> import re >>> text_1 = r""" "Some text on \"two\" lines with a backslash escaped\\" \ + "Another text on \"three\" lines" """ >>> text_2 = r""" "Some text on \"two\" lines with a backslash escaped\\" + "Another text on \"three\" lines" """ >>> re.findall(r'\\"([^"]+)\\"', text_2) ['two', 'three'] >>> re.findall(r'\\"([^"]+)\\"', text_1) ['two', 'three'] 

Quizás quieras esto:

 re.findall(r'\\"((?:(?