[英]Tokenise line containing string literals
使用str.split
来"print 'Hello, world!' times 3"
"print 'Hello, world!' times 3"
返回列表["print", "'Hello,", "world!'", "times", "3"]
。 但是,我想要结果["print", "'Hello, world!'", "times", "3"]
。 我怎样才能做到这一点?
如果要从split中排除引号中的单词,则可以使用shlex.split
:
import shlex
s = "print 'Hello, world!' times 3"
print(shlex.split(s))
# ['print', 'Hello, world!', 'times', '3']
如果需要,此正则表达式将捕获引号。
import re
s = "print 'hello, world!' 3 times"
re.findall(r'(\w+|\'.+\')',s)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.