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 говорит снова), если вы хотите принять пустые строки, измените .+ на .*. Звезда означает ноль или больше - плюс означает, по крайней мере, один.