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] 删除。
我来说两句