Как разделить текст на Python, когда разделитель меняется (увеличивается)? - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь разделить некоторый необработанный текст с помощью функции .split(). Моя единственная проблема заключается в том, что разделитель меняется. Я хотел бы разделить текст на вопрос и ответ, чтобы каждый вопрос + контент и его ответ + контент были сгруппированы вместе, чтобы дать мне список строк со всеми вопросами.

Мне нужно иметь возможность разделите текст на "< b >Question 1", а затем снова на "< b >Question 2" и так далее, пока у меня не закончатся вопросы. Вопросы всегда в порядке, но число имеющихся вопросов не всегда одинаково.

Например:

-< b >Question 1:
content of question 1
-< b >Answer 1:
content of answer 1
-< b >Question 2:
content of question 2
-< b >Answer 2:
content of answer 2

Мне нужен вывод:

output = [
    "-< b >Question 1: content of question 1 < b >Answer 1: content of answer 1",
    "< b >Question 2: content of question 2 < b >Answer 2: content of answer 2"
    ]

Я могу разделить текст, когда разделитель непротиворечив, но я не понимаю, как можно разделить его, когда разделитель меняется.

Я попытался сделать рекурсивный вызов, используя «this» и « rest ":

def mySplitter(textString):
    finalList = []
    questionNumber = 1

    this, rest = sampleString.split("<b>Question " + str(questionNumber))
    finalList.append(this)
    finalList.append(rest)

    mySplitter(rest)

Идея заключалась в том, чтобы попытаться увеличить номер вопроса и продолжать разделять" остаток "строки до тех пор, пока не останется ничего. Но я продолжаю превышать максимальную глубину.

Любые идеи о том, что происходит или какие альтернативные и более "изощренные" методы могут быть лучше?

Спасибо!

I ' м, используя Python 3,7

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...