Помогите с регуляркой

Поддержка
  • @fox said in Помогите с регуляркой:

    Xpath для парсинга html?

    Можно. Но тут в другом ситуация. Вообще возможно это сделать или слишком сложно?

  • @samael_96 said in Помогите с регуляркой:

    @fox said in Помогите с регуляркой:

    Xpath для парсинга html?

    Можно. Но тут в другом ситуация. Вообще возможно это сделать или слишком сложно?

    Скорее ненадёжно. Для регулярок приведите пару примеров текста (чтобы узнать, что меняется, а что нет) и что нужно из него получить.

  • А какой результат должен быть?

  • @fox
    Имеем такой текст на входе:

    <tekst><tekst><h1></h2>
    <tekst
    tekst
    tekst
    tekst>
    <tekst><tekst>
    

    теги <h1></h2> должны остаться, все остальное должно уйти.
    Пока что мне удалось такую регулярку сделать

    <(?!h|/h).*?>
    

    Она удаляет все между этими скобками

     <>
    

    Кроме тегов <h1></h1>-...<h6></h6>-
    Но, есть одно исключение, вот этот текст:

    <tekst
    tekst
    tekst
    tekst>
    

    между <> она не убирает потому, что он с новой строки начинается.

  • @samael_96 said in Помогите с регуляркой:

    @fox
    Имеем такой текст на входе:

    <tekst><tekst><h1></h2>
    <tekst
    tekst
    tekst
    tekst>
    <tekst><tekst>
    

    теги <h1></h2> должны остаться, все остальное должно уйти.
    Пока что мне удалось такую регулярку сделать

    <(?!h|/h).*?>
    

    Она удаляет все между этими скобками

     <>
    

    Кроме тегов <h1></h1>-...<h6></h6>-
    Но, есть одно исключение, вот этот текст:

    <tekst
    tekst
    tekst
    tekst>
    

    между <> она не убирает потому, что он с новой строки начинается.

    Действие "первое вхождение" с регуляркой:

    <h1>(.*?)<\/h2>
    

    Я так понимаю нужен текст между этими тегами?

  • @fox said in Помогите с регуляркой:

    Я так понимаю нужен текст между этими тегами?

    Немножко не то. Сори, за потраченное время. Я наверное слишком многое от одного регулярного выражения хочу, тут надо комплекс решений на БАС-е организовать.

  • @samael_96 а так не подойдет?

    [\s\S]+(<h1></h2>)[\s\S]+
    
  • @symposium :) нет, мне надо, вот кусок html кода который выдран с этой страницы

    <p><a class="plugin-mentions-user plugin-mentions-a" href="http://community.bablosoft.com//uid/394">@fox</a> said in <a href="/post/40221">Помогите с регуляркой</a>:</p>
    <blockquote>
    <p>Xpath для парсинга html?</p>
    </blockquote>
    <p>Можно. Но тут в другом ситуация. Вообще возможно это сделать или слишком сложно?</p>
    </blockquote>
    <p>Скорее ненадёжно. Для регулярок приведите пару примеров текста (чтобы узнать, что меняется, а что нет) и что нужно из него получить.</p>
    
    </div>
    
    <div class=
    "clearfix
    post-footer">
    

    Мне надо оставить текст, и удалить html коды, это делается регуляркой (<+?[\s\S]+?>+?), но она удаляет абсолютно все что находится между <>, а мне разметку надо оставить. <h1> прочие теги тут уже какие тебе надо, это делается регуляркой <(?!h|/h).*?> но у нее другой недостаток. Она не удаляет, между <> если они начинаются с новой строки, например так

    <div class=
    "clearfix
    post-footer">
    

    А мне надо регулярка которая чистит от html кода но оставляет нужные мне теги, и удаляет c тем условием что я выше уже описал.
    Вот такой вот сложный вопрос, и чувствует моя 5-я точка, что надо было мне пойти по длинному пути еще утром, ибо с утра сижу, блин уже 9 часов вечера, кошмар.

  • @samael_96 said in Помогите с регуляркой:

    @symposium :) нет, мне надо, вот кусок html кода который выдран с этой страницы

    <p><a class="plugin-mentions-user plugin-mentions-a" href="http://community.bablosoft.com//uid/394">@fox</a> said in <a href="/post/40221">Помогите с регуляркой</a>:</p>
    <blockquote>
    <p>Xpath для парсинга html?</p>
    </blockquote>
    <p>Можно. Но тут в другом ситуация. Вообще возможно это сделать или слишком сложно?</p>
    </blockquote>
    <p>Скорее ненадёжно. Для регулярок приведите пару примеров текста (чтобы узнать, что меняется, а что нет) и что нужно из него получить.</p>
    
    </div>
    
    <div class=
    "clearfix
    post-footer">
    

    Мне надо оставить текст, и удалить html коды, это делается регуляркой (<+?[\s\S]+?>+?), но она удаляет абсолютно все что находится между <>, а мне разметку надо оставить. <h1> прочие теги тут уже какие тебе надо, это делается регуляркой <(?!h|/h).*?> но у нее другой недостаток. Она не удаляет, между <> если они начинаются с новой строки, например так

    <div class=
    "clearfix
    post-footer">
    

    А мне надо регулярка которая чистит от html кода но оставляет нужные мне теги, и удаляет c тем условием что я выше уже описал.
    Вот такой вот сложный вопрос, и чувствует моя 5-я точка, что надо было мне пойти по длинному пути еще утром, ибо с утра сижу, блин уже 9 часов вечера, кошмар.

    Оно?
    0_1545937401055_84011b09-b908-4e3a-a727-14e99c845cc8-изображение.png

    <(?!h|\/h).*?[\s\S]*?>
    

    Вот тест

  • @fox Спасибо тебе Fox большое. А я уже почти костыль доваял :)

  • 0 Votes
    7 Posts
    714 Views
  • 0 Votes
    9 Posts
    914 Views
  • 0 Votes
    5 Posts
    571 Views
  • Работа с flash

    Поддержка
    0 Votes
    2 Posts
    1015 Views