Это может работать с использованием регулярного выражения, используя Roll No
в качестве совпадения
Пример:
import re
s = """Student 1
Student Name - abcd xyz
abcd is smart kid.
Roll No - 1
Remark - Need little focus on study.
Student 2
Student Name - pqr def
pqr is intelligent kid.
Roll No - 3"""
data = re.split("(Roll No \- \d+)", s)
for i in zip(data[::2], data[1::2]):
print(i)
Выход:
('Student 1\nStudent Name - abcd xyz\nabcd is smart kid.\n', 'Roll No - 1')
('\nRemark - Need little focus on study.\nStudent 2\nStudent Name - pqr def\npqr is intelligent kid.\n', 'Roll No - 3')