pythonregex

Python Regex to find a string in double quotes within a string


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'"*"'


Solution

  • 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 give String 1" or "String 2" or "String 3; the non-greedy version .+? gives String 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.