Разделить текст на основе нескольких разделителей ('\ n', '/') - PullRequest
1 голос
/ 23 мая 2019

Предположим, у меня есть такой документ:

document = ["This is a document\nwhich has to be splitted\nOK/Right?"]

и я хотел бы разделить этот документ (для начала), где бы я ни встретил '\ n' или '/'.

Таким образом, приведенный выше документ должен быть преобразован в следующий:

document = ["This is a document", "which has to be splitted", "OK", "Right?"]

Как я могу это сделать?

Имейте в виду, что в тексте могут быть другие специальные символы и т. Д., И я пока не хочу их удалять.

Ответы [ 4 ]

2 голосов
/ 23 мая 2019

Используйте re, чтобы разбить строку текста на несколько символов или комбинаций символов:

document = ["This is a document\nwhich has to be splitted\nOK/Right?"]
re.split("[\n/]",document[0])

, который производит запрошенные строки:

['This is a document', 'which has to be splitted', 'OK', 'Right?']

0 голосов
/ 23 мая 2019

Использование re.split(), вероятно, является лучшим решением.

Альтернативное решение без регулярных выражений:

document = ["This is a document\nwhich has to be splitted\nOK/Right?"]
document[0] = document[0].replace('/', '\n')
document[0].splitlines()
0 голосов
/ 23 мая 2019

Вы можете использовать re.split():

import re
def split_document(document):
    if document == []:
        return []
    tmp_str = document[0]
    tmp_list = re.split("\n|/",tmp_str)
    return tmp_list+split_document(document[1:])
0 голосов
/ 23 мая 2019

Это уникальный случай, когда Регулярные выражения сияют! Используйте модуль Python re:

>>> import re
>>> document = ["This is a document\nwhich has to be splitted\nOK/Right?"]
>>> re.split(r"[\n/]", document[0])
['This is a document', 'which has to be splitted', 'OK', 'Right?']

В этом посте больше всего обсуждений на эту тему

...