Извлечь строку из котировок

Я хочу извлечь информацию из введенного пользователем текста. Представьте себе, что я ввожу следующее:

SetVariables "a" "b" "c" 

Как я могу извлечь информацию между первым набором котировок? Тогда второе? Тогда третий?

    3 Solutions collect form web for “Извлечь строку из котировок”

     >>> import re >>> re.findall('"([^"]*)"', 'SetVariables "a" "b" "c" ') ['a', 'b', 'c'] 

    Вы можете сделать string.split () на нем. Если строка правильно отформатирована с кавычками (т. Е. Четное число кавычек), каждое нечетное значение в списке будет содержать элемент, который находится между кавычками.

     >>> s = 'SetVariables "a" "b" "c"'; >>> l = s.split('"')[1::2]; # the [1::2] is a slicing which extracts odd values >>> print l; ['a', 'b', 'c'] >>> print l[2]; # to show you how to extract individual items from output c 

    Это также более быстрый подход, чем регулярные выражения. С модулем timeit скорость этого кода примерно в 4 раза выше:

     % python timeit.py -s 'import re' 're.findall("\"([^\"]*)\"", "SetVariables \"a\" \"b\" \"c\" ")' 1000000 loops, best of 3: 2.37 usec per loop % python timeit.py '"SetVariables \"a\" \"b\" \"c\"".split("\"")[1::2];' 1000000 loops, best of 3: 0.569 usec per loop 

    Регулярные выражения хороши в этом:

     import re quoted = re.compile('"[^"]*"') for value in quoted.findall(userInputtedText): print value 
      Python - лучший язык программирования в мире.