当前位置:  开发笔记 > 编程语言 > 正文

在python中拆分字符串

如何解决《在python中拆分字符串》经验,为你挑选了2个好方法。

我有一个字符串,如下所示:

这是[支架测试]"和引用测试"

我正在尝试用Python编写一些东西,用空格分割,同时忽略方括号和引号中的空格.我正在寻找的结果是:

['this','is','支架测试','和报价测试']



1> Bryan Oakley..:

这是一个简单的解决方案,适用于您的测试输入:

import re
re.findall('\[[^\]]*\]|\"[^\"]*\"|\S+',s)

这将返回任何匹配的代码

一个开括号,后跟零或多个非近括号字符后跟一个紧括号,

双引号后跟零个或多个非引号字符后跟引号,

任何一组非空白字符

这适用于您的示例,但对于您可能遇到的许多真实字符串可能会失败.例如,您没有说出您对不平衡括号或引号的期望,或者您希望单引号或转义字符如何工作.但是,对于简单的情况,上述情况可能已经足够了.



2> PhE..:

完成布莱恩的帖子并完全匹配答案:

>>> 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 ']

不要误解所使用的整个语法:这不是单行上的几个语句,而是单个功能语句(更多的bug).

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有