所以我用这个答案非常接近我所需要的.
在我的情况下,我想分割空间,但不是当字符串的一部分在引号内时.
这是我的代码:
data = '"abc dfg" ab da'
PATTERN = re.compile(r'''((?:[^ "']|"[^"]*"|'[^']*')+)''')
wordList = PATTERN.split(data)[1::2]
Run Code Online (Sandbox Code Playgroud)
给wordList:
['"abc dfg"', 'ab', 'da']
Run Code Online (Sandbox Code Playgroud)
如何更改表达式以使字符串没有额外的引号?
像这样:
['abc dfg', 'ab', 'da']
Run Code Online (Sandbox Code Playgroud)
您不必使正则表达式复杂化,只需迭代列表并"从中删除即可.您可以通过多种方式执行此操作,例如使用strip('"').
顺便说一下,你有更好的解决方案:
>>> import shlex
>>> shlex.split('"abc dfg" ab da')
['abc dfg', 'ab', 'da']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |