这是一个简单的解决方案,适用于您的测试输入:
import re
re.findall('\[[^\]]*\]|\"[^\"]*\"|\S+',s)
Run Code Online (Sandbox Code Playgroud)
这将返回任何匹配的代码
这适用于您的示例,但对于您可能遇到的许多真实字符串可能会失败.例如,您没有说出您对不平衡括号或引号的期望,或者您希望单引号或转义字符如何工作.但是,对于简单的情况,上述情况可能已经足够了.
完成布莱恩的帖子并完全匹配答案:
>>> import re
>>> txt = 'this is [bracket test] "and quotes test "'
>>> [x[1:-1] if x[0] in '["' else x for x in re.findall('\[[^\]]*\]|\"[^\"]*\"|\S+', txt)]
['this', 'is', 'bracket test', 'and quotes test ']
Run Code Online (Sandbox Code Playgroud)
不要误解所使用的整个语法:这不是单行上的几个语句,而是单个功能语句(更多的bug).
| 归档时间: |
|
| 查看次数: |
4904 次 |
| 最近记录: |