def baselevels(self, s, maxlevel=1, brackets="()"):
"""strip parts of a string above a given bracket level
- return a modified (some parts might be removed) version of the string s
where all parts inside brackets with level higher than maxlevel are
removed
- if brackets do not match (number of left and right brackets is wrong
or at some points there were more right brackets than left brackets)
just return the unmodified string"""
level = 0
highestlevel = 0
res = ""
for c in s:
if c == brackets[0]:
level += 1
if level > highestlevel:
highestlevel = level
if level <= maxlevel:
res += c
if c == brackets[1]:
level -= 1
if level == 0 and highestlevel > 0:
return res
评论列表
文章目录