将空格字符串拆分为列表,但不能在引号中拆分空格,并且在Python中的引号中还允许使用特殊字符(例如$,%等)

杰克·默罗
s = 'hello "ok and @com" name'

s.split()

有没有一种方法可以将其拆分为一个列表,该列表拆分空白字符,但不拆分引号中的白色字符,并且不允许在引号中使用特殊字符。

["hello", '"ok and @com"', "name"]

我希望它能够像这样输出,但无论如何都允许使用特殊字符。

有人可以帮我弄这个吗?

(我查看了与此相关的其他帖子,但是当我测试这些帖子时,不允许使用特殊字符。)

机械肉

您可以使用re.split()正则表达式模式来自:https : //stackoverflow.com/a/11620387/42346

import re

re.split(r'\s+(?=[^"]*(?:"[^"]*"[^"]*)*$)',s) 

返回值:

['hello', '"ok and @com"', 'name']

正则表达式的说明:

\ s +#匹配空格
(?=#开始超前
   [^“] *#匹配任意数量的非引号字符
   (?:#开始非捕获组,重复零次或多次
      ” [^“] *”#引号一文本的一部分
      [^“] *#任意数量的非引号字符
   )*#结束非捕获组
   $#匹配字符串的结尾
)#结束先行

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档