Не работает регулярка в БАС



  • Очень часто сталкиваюсь с такой ситуацией что регулярные выражения хорошо работающие в Зеннопостере, не работают в БАС. Обычно как-то удавалось решить проблему. Но на этот раз уже выбился из сил. Помогите кто может!)

    Задача следующая. Есть текст где встречаются доменные имена. Так вот, их нужно спарсить в список. Использую такую регулярку

    /([0-9a-z-]+.)(net|com|org|info|biz|mobi)/

    Но ничего не парсит, выдает ошибку SyntaxError: Parse error Номер строки:2 Во время выполнения скрипта бла бла бла...

    Тестовый шаблон прилагаю 0_1511714282231_test_pars_domains.rar



  • тестовый не смотрел, но проверь так: [\da-z\-]+\.(net|com|org|info|biz|mobi)

    регулярки с зено и не должны работать в БАС, грубо говоря. Потому что там .NET , а тут JS



  • Тип string нужно указать для строки с регуляркой. Еще возьмите все выражение в скобки, чтобы доменная зона не обрезалась



  • @out said in Не работает регулярка в БАС:

    тестовый не смотрел, но проверь так: [\da-z\-]+\.(net|com|org|info|biz|mobi)

    регулярки с зено и не должны работать в БАС, грубо говоря. Потому что там .NET , а тут JS

    Да в курсе. Немного шаманил и обычно помагало)

    @noask said in Не работает регулярка в БАС:

    Тип string нужно указать для строки с регуляркой. Еще возьмите все выражение в скобки, чтобы доменная зона не обрезалась

    Спасибо! Заработало! Действительно STRING ставишь и все в скобки и работает) По скобкам отдельная благодарность, сам бы не допер))



  • @Gang > SyntaxError: Parse error Номер строки:2 Во время выполнения скрипта бла бла бла...

    После обновления БАС выдает только ид действия, которое вызвало ошибку

    0_1513448459382_SyntaxError.png



  • @Gang Обновил модуль регулярных выражений.

    Перевел движок с js на с++, это означает, что теперь регулярки поддерживают lookbehind, unicodeproperties и многое другое.
    Если говорить просто, то регулярные выражения теперь можно копировать с другого софта без доработки.

    Действие Первое вхождение теперь может получать все группы в разные переменные. Нужно просто записать переменные через запятую(как в действии Парсить строку).

    Действие Извлечь все данные может получать конкретную группу, для этого ей нужно присвоить имя result.

    Появилось действие Заменить строку через регулярки.

    К каждому действию добавлены примеры и описание.

    Новую версию модуля можно попробовать скачав по ссылке RegularExpression.zip или подождав новую версию БАС.



  • @support Спасибо огромное за регулярки! Разные группы в разные переменные это клёво, а то раньше через RegExp.$n приходилось.. Да и ньюфагам будет проще.



  • Спасибо! Намаялся я с regexp на базе js это просто капец. Теперь красота, сделал в тестере Зенки, копирнул и работает)



  • @Gang так а чем конструктор в самом BAS не катит? Ну точнее ссылка на сайт, где можно замутить выражение. Всегда через него делаю, проблем не позникало



  • @Cruzel, с зенковским он пока в сравнение по удобству не идет.



  • @Antonio said in Не работает регулярка в БАС:

    @Cruzel, с зенковским он пока в сравнение по удобству не идет.

    в точку


Log in to reply