I’m looking for a code in python using regex that can perform something like this
Input: Regex should return "String 1" or "String 2" or "String3"
Output: String 1,String2,String3
I tried r'"*"'
Advertisement
Answer
Here’s all you need to do:
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'
As pointed out by Li-aung Yip:
To elaborate,
.+?
is the “non-greedy” version of.+
. It makes the regular expression match the smallest number of characters it can instead of the most characters it can. The greedy version,.+
, will giveString 1" or "String 2" or "String 3
; the non-greedy version.+?
givesString 1
,String 2
,String 3
.
In addition, if you want to accept empty strings, change .+
to .*
. Star *
means zero or more while plus +
means at least one.