У меня есть текстовый файл, и я хочу сопоставить / найти все / разобрать все символы, которые находятся между определенными символами ( [\ n " текст для соответствия " \ n]).Сам текст может сильно отличаться друг от друга в отношении структуры и символов, которые они содержат (они могут содержать все возможные символы).
Я уже писал этот вопрос (извините за дубликат), но покапроблема не может быть решена, поэтому теперь я пытаюсь быть еще более точным в этой проблеме.
Текст в файле выглядит так:
test ="""
[
"this is a text and its supposed to contain every possible char."
],
[
"like *.;#]§< and many "" more."
],
[
"plus there are even
newlines
in it."
]"""
Мой желаемый вывод долженбыть списком (например) с каждым текстом между разделителями в качестве элемента, например:
['this is a text and its supposed to contain every possible char.', 'like *.;#]§< and many "" more.', 'plus there are even newlines in it.']
Я пытался решить его с помощью Regex и двух решений с соответствующим выводом, которые я придумал:
my_list = re.findall(r'(?<=\[\n {8}\").*(?=\"\n {8}\])', test)
print (my_list)
['this is a text and its supposed to contain every possible char.', 'like *.;#]§< and many "" more.']
ну, этот был близко.В нем перечислены первые два элемента, как предполагается, но, к сожалению, нет третьего, поскольку в нем есть новые строки.
my_list = re.findall(r'(?<=\[\n {8}\")[\s\S]*(?=\"\n {8}\])', test)
print (my_list)
['this is a text and its supposed to contain every possible char."\n ], \n [\n "like *.;#]§< and many "" more."\n ], \n [\n "plus there are even\nnewlines\n \n in it.']
хорошо, на этот раз каждый элемент включен, но в списке есть только один элемент и заглядываниеКажется, он не работает так, как я думал.
Так что же правильно использовать Regex для получения желаемого результата?Почему во втором подходе нет предвидения?
Или есть даже более чистый и быстрый способ получить то, что я хочу (Beautifulsoup или другие методы?)?
Я очень благодарен за любыеПомощь и подсказки.
Я использую Python 3.6.