В БАСе не работает правильная регулярка



  • Например, есть такая строка с урлом https://community.bablosoft.com/search
    Мне нужно с этой строки получить главный домен, а именно community.bablosoft.com
    В зеннопостере у меня для этого есть рабочая регулярка (?<=https?://).*?(?=/)
    Но в БАСе она ничего не находит. Почему так?
    Помогите, пожалуйста, решить проблему.



  • @Gang / <= Не? А не проще так

    var url = "https://community.bablosoft.com/search";
    var host = url.split("/")[2];
    

    Мопед не мой это @GhostZ реализовал ну я у него видел



  • @Gang said in В БАСе не работает правильная регулярка:

    Например, есть такая строка с урлом https://community.bablosoft.com/search
    Мне нужно с этой строки получить главный домен, а именно community.bablosoft.com
    В зеннопостере у меня для этого есть рабочая регулярка (?<=https?://).*?(?=/)
    Но в БАСе она ничего не находит. Почему так?
    Помогите, пожалуйста, решить проблему.

    С возвращением :)

    Вы указали регулярку простым текстом и часть символов форум просто съел и то, что осталось является регуляркой с ошибкой:
    b837bdac-7520-4630-855a-102a8cd0b390-изображение.png

    Если исправить ошибку и заэкранировать управляющие символы, то получится регулярка:

    (?<=https?:\/\/).*?(?=\/)
    

    то оно сработает в хроме:
    1f2f32d6-ccc8-4ed2-98e5-8e872cc40166-изображение.png

    но не сработает в фаерфоксе
    632c6608-d903-4dd0-9730-da340e066c91-изображение.png

    Я вообще не понимаю, для чего в этой регулярке назад смотрящие утверждение ?<= и вперёд смотрящие утверждение ?= ?
    Когда та же самая регулярка, только без утверждений и короче и работает везде:

    https?:\/\/(.*?)\/
    

    https://regex101.com/r/3aesks/1

    Chrome
    2a080b94-16e7-41ed-abd2-7a295567b87b-изображение.png

    Firefox
    b5d533ea-7979-442d-96c2-3875dcbab59d-изображение.png

    BAS
    f2ea4926-cd60-43f7-ada1-f2753341ef6e-изображение.png
    8e4325a4-ac0f-4997-aeb5-60eefd20885b-изображение.png


    А по задаче

    Например, есть такая строка с урлом https://community.bablosoft.com/search
    Мне нужно с этой строки получить главный домен, а именно community.bablosoft.com

    Вариант с методом split() надёжнее и быстрее, если не понимаете, что делает этот код, можете его повторить действиями BAS:
    ce7d53a8-552c-4ef3-914e-db3360cd5532-изображение.png
    тестовый скрипт 249.xml



  • @f0cus said in В БАСе не работает правильная регулярка:

    @Gang / <= Не? А не проще так

    var url = "https://community.bablosoft.com/search";
    var host = url.split("/")[2];
    

    Мопед не мой это @GhostZ реализовал ну я у него видел

    Спасибо! Самое лучшее решение! Работает, буду юзать)

    @Fox said in В БАСе не работает правильная регулярка:

    С возвращением :)

    Спасибо! Появился один заказик на БАСе, вот судорожно вспоминаю все тонкости)
    Спасибо тебе за детальный разбор моего косяка! За скрины отдельное спасибо, не поленился, все детально, четко и красиво.
    Я на быструю руку привык в Зенке в конструкторе действий. И чет забыл что тут еще нужно экранировать слеши)
    2020-01-29_21-28-25.png

    Спасибо всем!


Log in to reply