Python Regex, чтобы найти строку в двойных кавычках внутри строки

Код в python с использованием regex, который может выполнять что-то вроде этого

Input: Regex should return "String 1" or "String 2" or "String3" 
Output: String 1,String2,String3

Спасибо

Ответ 1

Здесь все, что вам нужно сделать:

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'

Как указано Li-aung Yip: (я почти цитирую)

.+? является "неживой" версией .+. Это делает регулярное выражение совпадающим с наименьшим количеством символов, которое оно может, вместо большинства символов, которые он может. Жадная версия .+ даст строку 1" or "String 2" or "String 3; не жадная версия .+? 'String 1, String 2, String3'

Кроме того (Johan говорит снова), если вы хотите принять пустые строки, измените .+ на .*. Звезда означает ноль или больше - плюс означает, по крайней мере, один.