Python切片除括号中的内容外的所有内容

2024-09-30 22:15:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写的这个程序接收一个大小不同、括号数目不同的字符串,其中括号内包含不同大小的字符。
例如:wysectplwqpvidv[srzwtwbfzqtspxnethm]syqbzgtboxxzpwr
我希望能够将这个字符串分割成一个包含所有不在括号中的部分的字符串的列表。 例如:

list[0] = wysextplwqpvipxdv  
list[1] =syqbzgtboxxzpwr    

我知道字符串.切片我读过这个:Explain Python's slice notation
然而,我很难思考如何将其放入代码中。
挑战在于不知道有多少方括号,而且能够将字符串剪切到列表中。在


Tags: 字符串程序列表切片slice字符list括号
1条回答
网友
1楼 · 发布于 2024-09-30 22:15:59

在括号(非贪心的)regex中使用re.split

import re

s = "wysextplwqpvipxdv[srzvtwbfzqtspxnethm]syqbzgtboxxzpwr"

toks = re.split("\[.*?\]",s)

print(toks)

结果:

^{pr2}$

警告:如果方括号是嵌套的,则此操作不起作用。在本例中,您必须使用更复杂的解析器,如pyparsing。在

编辑:在这种情况下,可以使用regex进行嵌套管理,因为我们只考虑括号外的级别。regex to get all text outside of brackets的一个新答案就是这样。在

相关问题 更多 >