Python: почему эти два регулярных выражения re.sub и re.compile не проводят замену?

почему эти два регулярных выражения re.sub и re.compile не проводят замену?

если я использую простые регулярные выражения, замена проходит успешно

re.findall хорошо работает. Я хочу заменить пустым ' '. но re.sub и re.compile не работает с этим конкретным регулярным выражением

if len(re.findall('(?!<p>).+?(?<!</p>)$', page_text)) != 0:
                page_text = re.sub('(?!<p>).+?(?<!</p>)$', '', page_text)
                counter_img += 1

ИЛИ

    if len(re.findall('^\s+</p>', page_text)) != 0:
        page_text = re.compile(r'', page_text)
        counter_img += 1

ИЛИ

        if len(re.findall('\n\s*', page_text)) != 0:
            page_text = re.sub('\n\s*', '', page_text)
            counter_img += 1

Ответы (1 шт):

Автор решения: Just Me

Пришлось добавить флаг типа flags=re.MULTILINE Я снова тестирую, и теперь работает нормально

    if len(re.findall('(?!<p>).+?(?<!</p>)$', page_text, flags=re.MULTILINE)) != 0:
        page_text =  re.sub('(?!<p>).+?(?<!</p>)$', '', page_text, flags=re.MULTILINE) 
        counter_img += 1

см. эти ссылки

https://stackoverflow.com/questions/61668591/string-replacement-multiline-case-insensitive-with-special-characters

https://stackoverflow.com/questions/6163586/python-regex-multiple-search

https://docs.python.org/3/howto/regex.html

→ Ссылка