was*_*256 5 python split delimiter
我有以下文字
text = 'This is "a simple" test'
Run Code Online (Sandbox Code Playgroud)
我需要以两种方式拆分它,首先是引号然后是空格,导致:
res = ['This', 'is', '"a simple"', 'test']
Run Code Online (Sandbox Code Playgroud)
但是str.split()我只能使用引号或空格作为分隔符.是否有多个分隔符的内置函数?
您可以使用shlex.split,方便解析引用的字符串:
>>> import shlex
>>> text = 'This is "a simple" test'
>>> shlex.split(text, posix=False)
['This', 'is', '"a simple"', 'test']
Run Code Online (Sandbox Code Playgroud)
在非posix模式下执行此操作可防止从拆分结果中删除内部引号.默认情况下posix设置为True:
>>> shlex.split(text)
['This', 'is', 'a simple', 'test']
Run Code Online (Sandbox Code Playgroud)
如果您有多行此类文本或您正在从流中读取,则可以使用以下方法有效地拆分(不包括输出中的引号)csv.reader:
import io
import csv
s = io.StringIO(text.decode('utf8')) # in-memory streaming
f = csv.reader(s, delimiter=' ', quotechar='"')
print list(f)
# [['This', 'is', 'a simple', 'test']]
Run Code Online (Sandbox Code Playgroud)
如果在Python 3上,您将不需要将字符串解码为unicode,因为所有字符串都已经是unicode.
| 归档时间: |
|
| 查看次数: |
1880 次 |
| 最近记录: |