在str.split
上使用"print 'Hello, world!' times 3"
会返回列表["print", "'Hello,", "world!'", "times", "3"]
。但是,我想要结果["print", "'Hello, world!'", "times", "3"]
。我怎么能这样做?
答案 0 :(得分:3)
如果您要从拆分中排除引用中的字词,可以使用shlex.split
:
import shlex
s = "print 'Hello, world!' times 3"
print(shlex.split(s))
# ['print', 'Hello, world!', 'times', '3']
答案 1 :(得分:1)
如果你需要,这个正则表达式会捕获引号。
import re
s = "print 'hello, world!' 3 times"
re.findall(r'(\w+|\'.+\')',s)
答案 2 :(得分:0)