包含字符串文字的标记行

时间:2016-09-27 20:59:34

标签: python string parsing

str.split上使用"print 'Hello, world!' times 3"会返回列表["print", "'Hello,", "world!'", "times", "3"]。但是,我想要结果["print", "'Hello, world!'", "times", "3"]。我怎么能这样做?

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)

.split()函数根据分隔符拆分str。默认分隔符为blank space。它并不关心字符串中的'。如果您想将'内的单词视为单个单词。您应该使用shlex库,或者您可以编写regex表达式。当然,split()并不是你想要的。