python - Python - 用大括号分割多行字符串
问题描述
我创建了用括号分割多行字符串并将他的部分附加到列表的函数。
例子:
example = '''{First,
{[string]}},
{[Second,
{[(string)]}]},
{Third string}'''
start = 0
results = []
count = 0
for i in range(len(example)):
if example[i] == '{':
if count == 0:
start = i
count -=1
if example[i] == '}':
count +=1
if count == 0:
results.append(example[start:i+1])
print(len(results))
print(results)
这个的输出是(它是正确的,3个元素的列表):
3
['{First,\n {[string]}}', '{[Second,\n {[(string)]}]}', '{Third string}']
我的问题是,当我在字符串中的某处添加“额外”的打开和关闭括号时:
example = '''{First,
{[s{tring]}},
{[Second,
{[(string)]}]},
{Third st}ring}'''
我的函数返回我(只有 1 个元素的列表):
1
['{First,\n {[s{tring]}},\n {[Second,\n {[(string)]}]},\n {Third st}ring}']
是否可以避免这种情况并仅通过极端括号拆分字符串?如果您不明白我的问题,请随时提问!
编辑:
我还想提一下,括号之间可以是字符、整数、逗号、点等。
解决方案
一种可能的解决方案如下
l = []
for line in example.split('\n'):
if ']' in line:
s = f"{l[-1]}\n{line}"
l[-1] = s
else:
l.append(line)
推荐阅读
- postgresql - Automatic creation of replication slot not working on Barman 2.11?
- rust - trying to use the mutex in an Arc
> with a Condvar - reactjs - React DnD Expected to find a valid target
- android - Not able to stop listening to stream in flutter
- mongodb - how to query mongo profile greater than a specific date
- javascript - 无法在 then 方法中调用函数
- excel - VBA Excel:如何将类放入数组中
- arrays - Reactjs:如何检查数组中的数据是否存在?
- c++ - 带有 std::async 的函数在 Linux 上不使用多个内核
- swift - 如何让用户快速在 xib 单元格内的文本字段中输入文本