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.