Регулярное выражение - удалить если в теге одно предложение

Тема в разделе "Функции поиск-замены и регулярные выражения", создана пользователем sinoda, 7 апр 2022.

  1. sinoda

    sinoda New Member Пользователи

    Регистрация:
    10 фев 2012
    Сообщения:
    55
    Город:
    Москва
    Приветствую! C регулярками на низком уровне - поэтому прошу помощи:
    Как регуляркой удалять абзацы заключенные в теги <p></p> с одним предложением в конце которого в основном это самая распространенная точка, а может и вообще без знака препинания. В предложении может встречаться и кириллица, и латиница, и цифры (символы редко, а значит не обязательно). Просто тупо не нужны обзацы с одним предложением...
    С двумя предложениями и более это правило распространяться не должно ( т.е. "точка, воскл или вопрос" и следующий за ней пробел + следующая заглавная буква или цифра и всё что угодно до </p> не должно удаляться.
    вот примерно:
    [LINEMODE]re:<p>(.*[\.{sep}\?{sep}!]{1})?</p>|
    Тут конечно .* задано не совсем верно т.к. будет включать в себя любое количество "предложений".
    Еще тут воспринимается знак препинания как не обязательный, но последний и это тоже не верно, т.к. опять же перед ним может быть множество знаков препинания...
    Как тут сделать что-ли "жадный" знак препинания ? или по другому сформулировать регулярку ?
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia

Поделиться этой страницей