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 say'
then the output would be ["hello, world", "is", "what", "'i", "say'"]
.
import shlex
def newSplit(value):
lex = shlex.shlex(value)
lex.quotes = '"'
lex.whitespace_split = True
lex.commenters = ''
return list(lex)
print newSplit('''This string has "some double quotes" and 'some single quotes'.''')
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'"]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With