How, in Python, can I use shlex.split()
or similar to split strings, preserving only double quotes? For example, if the input is \"hello, world\" is what \'i
You can use shlex.quotes to control which characters will be considered string quotes. You'll need to modify shlex.wordchars as well, to keep the '
with the i
and the say
.
import shlex
input = '"hello, world" is what \'i say\''
lexer = shlex.shlex(input)
lexer.quotes = '"'
lexer.wordchars += '\''
output = list(lexer)
# ['"hello, world"', 'is', 'what', "'i", "say'"]