gpt4 book ai didi

python - 通过\t 拆分字符串的棘手方法

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:11 25 4
gpt4 key购买 nike

这样的字符串:

x = dir\tsubdir1\t\tfile1.ext\t\tsubsubdir1\tsubdir2\t\tsubsubdir2\t\t\tfile2.ext

如何'pythonish/tricky'将上面的字符串拆分成列表?

dir
\tsubdir1
\t\tfile1.ext
\t\tsubsubdir1
\tsubdir2
\t\tsubsubdir2
\t\t\tfile2.ext

['dir', '\tsubdir1', '\t\tfile1.ext', '\t\tsubsubdir1', '\tsubdir2', '\t\tsubsubdir2', '\t\t\tfile2.ext']

概念验证:

x = r'dir\tsubdir1\t\tfile1.ext\t\tsubsubdir1\tsubdir2\t\tsubsubdir2\t\t\tfile2.ext'
y = x.split(r'\t')
print(y)

最佳答案

也许使用正则表达式?

>>> import regex
>>> L = regex.split(r"(?<!\t)\t", "dir\tsubdir1\t\tfile1.ext\t\tsubsubdir1\tsubdir2\t\tsubsubdir2\t\t\tfile2.ext")
>>> L
['dir', 'subdir1', '\tfile1.ext', '\tsubsubdir1', 'subdir2', '\tsubsubdir2', '\t\tfile2.ext']
>>> L[:1] + ['\t' + i for i in L[1:]]
['dir', '\tsubdir1', '\t\tfile1.ext', '\t\tsubsubdir1', '\tsubdir2', '\t\tsubsubdir2', '\t\t\tfile2.ext']

它是如何工作的?

正则表达式是

(?<!\t)\t

意思是“一个标签之前没有另一个标签”,因此标签序列中的每个第一个标签都与正则表达式匹配。然后将其用作拆分标记。

拆分后,每个后续项目都会剥离一个制表符,因此最后一行 L[:1] + ['\t' + i for i in L[1:]] 将背面缺少标签。

关于python - 通过\t 拆分字符串的棘手方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53517687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com