我想转这个:

mystr = '  foo1   (foo2 foo3 (foo4))'

进入:
['foo1','foo2 foo3 (foo4)']

所以基本上我必须根据一些空格/制表符和括号进行拆分。

我已经看到 re package split 函数可以处理多个分隔符( Python: Split string with multiple delimiters ),但我无法理解解析这种字符串的正确方法。

哪个是最好的-最pythonic-和简单的方法?

最佳答案

据我所知,这与您想要的一致,并且非常简单。它只是使用一些切片来隔离第一个单词和括号之间的部分。由于额外的空格,它还必须多次使用 strip。这可能看起来有点冗长,但说实话,如果任务可以通过如此简单的字符串操作来完成,我觉得复杂的解析是不必要的(尽管我可能弄错了)。请注意,这在拆分的空白量方面是灵活的。

mystr = '  foo1   (foo2 foo3 (foo4))'
mystr = mystr.strip()
i = mystr.index(' ')
a = mystr[:i].strip()
b = mystr[i:].strip()[1:-1]
print([a, b])

带输出
['foo1', 'foo2 foo3 (foo4)']

虽然我仍然不完全清楚这是否是你想要的。让我知道它是否有效或需要改变什么。

10-07 18:59
查看更多