Split a string by spaces — preserving quoted substrings — in Python

后端 未结 16 853
心在旅途
心在旅途 2020-11-22 15:05

I have a string which is like this:

this is \"a test\"

I\'m trying to write something in Python to split it up by space while ignoring spac

16条回答
  •  一整个雨季
    2020-11-22 15:48

    I suggest:

    test string:

    s = 'abc "ad" \'fg\' "kk\'rdt\'" zzz"34"zzz "" \'\''
    

    to capture also "" and '':

    import re
    re.findall(r'"[^"]*"|\'[^\']*\'|[^"\'\s]+',s)
    

    result:

    ['abc', '"ad"', "'fg'", '"kk\'rdt\'"', 'zzz', '"34"', 'zzz', '""', "''"]
    

    to ignore empty "" and '':

    import re
    re.findall(r'"[^"]+"|\'[^\']+\'|[^"\'\s]+',s)
    

    result:

    ['abc', '"ad"', "'fg'", '"kk\'rdt\'"', 'zzz', '"34"', 'zzz']
    

提交回复
热议问题