Проблема с регулярками



  • доброго времени суток! В басе проблемы с регулярками, стал вытягивать весь текст

    0_1514919999418_upload-0e68a339-fe6d-4528-8f57-c562c9f05078

    0_1514919976677_upload-d52413d6-a243-4839-9603-d9b2d073df58



  • @CaptchaLom Закрывающий тег не экранирован, попробуй так:

    <span\ class="parsent">([\s\S]+?)<\/span>
    


  • @Fox не помогло..



  • @CaptchaLom
    попробуй такой варик

    "parsent">(.{1,10})</span>
    

    p.s

    <span\ class="parsent">([\s\S]+?)<\/span>
    

    работает в 20.6.4



  • @CaptchaLom теперь регулярки работают так, как и должны

    (?<=<span\ class="parsent">)[\s\S]+?(?=<\/span>)
    


  • Не очень удобно получается. Или конструктор поправить, чтобы регулярку делал как надо, или вернуть как было.
    У меня такая же беда. В регулярках не спец, но с конструктором отлично получалось. Теперь же беда опять.

    <td><span\ class="rank\-img"></span><a\ href="\./memberlist\.php\?mode=viewprofile&amp;u=+?[\s\S]+?">+?([\s\S]+?)</a></td>+?
    

    Вот это как поправить?



  • @edik23 Так пойдет?

    mode=viewprofile&amp;u=[^"]+>([^<]+)
    


  • @ilekor said in Проблема с регулярками:

    @edik23 Так пойдет?

    mode=viewprofile&amp;u=[^"]+>([^<]+)
    

    неа. ничего не вытягивает



  • То же самое... Придётся изучать? Можно мануал по регуляркам? То что выдаёт конструктор не работает, вытягивает лишний текст



  • @edik23 самый простой вариант для твоего случая вставить кубик замены тегов на пустоту

    [[TEST]]=[[VARIABLE]].replace(/<.*?>/g, "");
    

    Можно было бы использовать блок замены БАСа, но @support почему-то не разрешил производить замену (ReplaceWith is empty) на пустую строку ))

    ...или временно отключить новый модуль RegularExpression.



  • @Cruzel тут лучшая шпаргалка http://www.exlab.net/tools/sheets/regexp.html
    Скачай себе и пользуйся.
    0_1515048915557_regexp[1].png
    Для проверки можно пользоваться онлайн-сервисами, но проще юзать Notepad++
    В строке поиска/замены тестишь свои регулярки, что найдёт - подсветит в коде.
    0_1515048813238_регулярки_notepad.jpg
    Ещё важно понять

    (?<=код_до).*?(?=код_после)
    

    до и после принимает только точные данные, т.е. * или + не работает.
    Экранировать обратным слэшем \ слэш / и др. запр. символы.
    .*? - самое короткое совпадение



  • xpath получить текст
    //span[@class='persent'] - все проще так.



  • This post is deleted!


  • Не, некатит так. Нет времени разбираться и держать все это в голове не хочется. Есть конструктор, в нем как сделал , так и должно работать. Это удобно. Я пока откатываюсь к прежней версии



  • @edik23 регулярки надо знать, очень надо. https://regex101.com/ Вот тут составляю, сразу видно что берет регулярка а что нет



  • @artihorror said in Проблема с регулярками:

    @edik23 регулярки надо знать, очень надо. https://regex101.com/ Вот тут составляю, сразу видно что берет регулярка а что нет

    Все правильно говорите. Но как то не срослось. Басовский конструктор меня очень даже устраивал. Но с новой версией что-то сломалось (или наоборот исправилось?). Но конструктор и бас теперь несовместимы. Все понимаю, пользуюсь бесплатно, и требовать что то не разумно. Но уж очень хотелось бы полную совместимость конструктора и баса. Без танцев потом с бубном



  • @edik23 Офтоп. я встроенный конструктор так и не понял, всегда кривые регулярки мне выдавал вне зависимости от версии (хотя уже год бас юзаю), проще оказалось самому накидывать) не такие уж они и сложные и страшные



  • This post is deleted!


  • спасибо огромное, очень подробно описал, буду юзать... Надо сохранить где то твой пост)



  • @Cruzel Xpath еще учи) Гораздо удобней



  • @artihorror said in Проблема с регулярками:

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

    Хз, всегда конструктор выдавал то что нужно, в последней версии да - не работает как нужно ;)


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.