比如说文本是这样的
第一回
红红火火恍恍惚惚
红红火火恍恍惚惚
第二回
噜啦噜啦嘞绿绿绿
噜啦噜啦嘞绿绿绿
第三回
咿咿呀呀呀呀晕呀晕
咿咿呀呀呀呀晕呀晕想给他弄成['第一回\n红红火火恍恍惚惚\n红红火火恍恍惚惚\n','第二回\n噜啦噜啦嘞绿绿绿\n噜啦噜啦嘞绿绿绿\n','第三回\n咿咿呀呀呀呀晕呀晕\n咿咿呀呀呀呀晕呀晕\n']列表的形式,用正则表达式怎么弄?
python
a = '''第一回
红红火火恍恍惚惚
红红火火恍恍惚惚
第二回
噜啦噜啦嘞绿绿绿
噜啦噜啦嘞绿绿绿
第三回
咿咿呀呀呀呀晕呀晕
咿咿呀呀呀呀晕呀晕
'''
print(a)
b = a.split(' \n')
print(b)

r"第一回([\s\S]*?)呀晕"
print(re.findall('[\u4e00-\u9fa5\n]+', text))
直接的正则做不到。可以自己定义个函数实现:
def split_text(s):
lines = s.strip().split('\n')
lst = []
t = ''
for idx, line in enumerate(lines, 1):
if not line:
lst.append(t.strip())
t = ''
elif idx == len(lines):
t += line
lst.append(t)
else:
t += line + '\n'
return lst以上函数只适用每回的分隔只有一个空行而不是多个连续空行。