我有以下字符串:
BUCKET1:/dir1/dir2/BUCKET1:/dir3/dir4/BUCKET2:/dir5/dir6
我试图将其拆分为以下dict/other数据结构:
^{pr2}$如果我只有一个桶,而不是多个桶,我可以把它分开,就像这样:
res.split(res.split(':', 1)[0].replace('.', '').upper()) -> it's not perfect
输入:ADRIAN:/dir1/dir11/DANIEL:/dir2/ADI_BUCKET:/dir3/CULEA:/dir4/ADRIAN:/dir5/ADRIAN:/dir6/
输出:[(ADRIAN,/dir1/dir11),(DANIEL,/dir2/),(CULEA,/dir3/),(ADRIAN,/dir5/),(ADRIAN,/dir6/)
根据Wiktor Stribiżew的评论,以下正则表达式起作用:
r"(BUCKET1|BUCKET2):(.*?)(?=(?:BUCKET1|BUCKET2)|$)"
使用re.findall()函数:
输出:
^{pr2}$如果你有经验,我建议像其他人建议的那样学习Regex。但是,如果您正在寻找替代方法,这里有一种不使用Regex的方法。它也会产生你想要的输出。在
这将产生:
^{pr2}$如果您不熟悉Regex,希望这段代码更容易理解和操作,尽管如果您熟悉如何使用它,我还是建议Regex来解决这个问题。在
改用正则表达式?在
这给了
^{pr2}$相关问题 更多 >
编程相关推荐