Python находит содержимое между различными разделителями - без bs4 - PullRequest
0 голосов
/ 11 мая 2018

Я искал его и не нашел точного ответа на этот вопрос. Я хотел бы найти содержимое между <start_here> и <end_here> в строке в Python. Это может происходить несколько раз в строке, например:

"Text text text <start_here> bla bla bla <end_here> text text <start_here> bla2 bla2 bla2 <end_here>"

Я пытаюсь извлечь " бла бла бла " и " бла2 бла2 бла2 ". Преимущество в том, что было бы идеально сделать это без Beautifulsoup4.

Любые намеки?

Приветствия

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Использовать re модуль:

import re

a = "Text text text <start_here> bla bla bla <end_here> text text <start_here> bla2 bla2 bla2 <end_here>"

re.findall('<start_here>(.+?)<end_here>', a)
#[' bla bla bla ', ' bla2 bla2 bla2 ']
0 голосов
/ 11 мая 2018

Я сделал это так (re.findall ()):

import re
def findContentBetweenTags(txt, new_content, tag1, tag2=None):
        if tag2 == None:
            tag2=tag1
        pattern = "(?<=<"+tag1+">).*(?=</"+tag2+'>)'
        return re.findall(pattern,new_content, txt)

https://docs.python.org/2/library/re.html

0 голосов
/ 11 мая 2018

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

import re
print re.findall("<start_here>(.*?)<end_here>", "<start_here> test test <end_here>")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...