Aquí está todo lo que tiene que hacer:
def doit(text):
import re
matches=re.findall(r'\"(.+?)\"',text)
# matches is now ['String 1', 'String 2', 'String3']
return ",".join(matches)
doit('Regex should return "String 1" or "String 2" or "String3" ')
# result:
'String 1,String 2,String3'
Como ha señalado Li-Aung Yip: (casi cito)
.+?
es la versión "no codiciosa" de .+
. Hace que la expresión regular coincida con el menor número de caracteres posible en lugar de la mayor cantidad de caracteres que puede. La versión codiciosa, .+
, dará la cadena 1" or "String 2" or "String 3
; la versión no codicioso .+?
'Cadena 1, 2 cuerdas, STRING3'
Además (Johan de volver a hablar), si desea aceptar cadenas vacías, cambiar .+
a .*
. Estrella significa cero o más, más significa al menos uno.
Podría haber citas entre comillas, ¿qué harías con eso? – user1227804
No, no habrá ninguna comilla. Simplemente cadena simple con a-z, espacios en blanco de 0-9, guión bajo, en su mayoría alfanumérico sin comillas simples o dobles dentro de ellos3 – nomi
¿Es esto una tarea para nosotros? [¿Qué has intentado] (http://whathaveyoutried.com) hasta ahora? –