gpt4 book ai didi

Python字符串分割多个括号

转载 作者:行者123 更新时间:2023-12-01 04:39:36 25 4
gpt4 key购买 nike

我正在寻找一种更简单/更快的方法来通过方括号/括号分割字符串,以及删除空格和无用的信息。

更具体地说,我想改变

[ 5 * * ]{t=0, 1 }{t=0, 3 }{t=0, 2 }

分两部分:

 5 * *   (or [ 5 * * ])
['1', '3', '2']

我设法使用我的代码来做到这一点:

test = '[ 5 * * ]{t=0, 1 }{t=0, 3 }{t=0, 2 }  '
parsed = test.split("[")[1].split(']')
index = parsed[0]
content = parsed[1].split('{')[1:]
seq=[]
for i in range(len(content)):
seq.append(content[i][4:-2].replace(' ', ''))
print index
print seq

得到:

 5 * * 
['1', '3', '2}']
<小时/>

我正在寻找修改我的代码的建议。如果满足以下条件,那就太理想了:

  1. 没有循环

  2. 减少“ split ”。 (我的代码中有三个“分割”函数)

  3. 更一般性。 (我使用 content[i][4:-2] 删除了不通用的 '{' 和 '}')

最佳答案

您可以使用re.findall和列表理解:

>>> l=re.findall(r'\[([^\]]*)\]|,([^}]*)}',s)
>>> [i.strip() for j in l for i in j if i]
['5 * *', '1', '3', '2']

以下正则表达式:

r'\[([^\]]*)\]|,([^}]*)}'

将匹配括号 (\[([^\]]*)\]) 之间以及逗号和 } 之间的所有内容 (,([^} ]*)})。

或者您可以使用re.split():

>>> [i.strip() for i in re.split(r'[{},[\]]',s) if i and '=' not in i]
['5 * *', '1', '3', '2']

关于Python字符串分割多个括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31013585/

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