БАГ Не работает регулярное выражение в списке
-
@Denis_krsk
точно так же все. Читаем фаил в список
Применяем регулярное выражение, получить все результаты
Я за басом уже год почти я точно не нуб но баг явно словил, что самое интересное в другом проекте все работает а в новом нет )
сейчас скеопировал с рабочего проекта 2 кубика в новый проект- читать фаил в список
- Извлечь все данные
и в нем регулярка не работает как так понимать ??
upd открыл рабочий проект пересохранил дубликат удалил от туда все оставил только два кубика
- читать фаил в список
- Извлечь все данные
Все работает как надо
Чудеса...
-
@BabloUser Да причем тут БАС рег выражения ни БАСом придуманы и работают только с строками. Если было не так то в обоих проектах все бы работало. Может в вашем первом проекте идет указание индекса к примеру ( [[LIST]][0] ).match(/Hello/) сработает, а ( [[LIST]] ).match(/Hello/) нет и напишет, что нет такой функций. Потому что у объекта ее действительно нет.
-
@Denis_krsk
а как объяснить то что кубики и регулярка идентичные друг другу? с дефолтными переменными
и есть два проекта ничем не отличающееся
если создать новый проект в нем не работает, а если очистить старый проект и в него скопировать - те же два действия то в нем работает все как положено.
-
@BabloUser Я не могу ничего объяснить не видя этого. Старый проект в этой версии БАС работает?
-
@Denis_krsk
Этот проект написан был на этой версии.
Сейчас переустановлю бас посмотрю как себя поведет.
В чем прикол что попробовал изменить в кубике "читать фаил в список" путь к другому файлу и регулярка перестала работать даже если в него скопировать опять те же два кубика из рабочего проекта. Теперь чтобы заработало нужно рабочий проект пересохранять и чистить все кроме этих двух кубиков.
-
@BabloUser увы, но @Denis_krsk прав. Регулярные выражения работают только со строками, без исключений.
А теперь тест на внимательность! Вот два идентичных тестовых скрипта:
Первый и Второй.Вопрос: Почему в первом скрипте регулярка не срабатывает, а во втором срабатывает?
-
@Fox
Как вот это понимать?в обоих случаях регулярка \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
рабочий это скопированый и в нем все удалено
не рабочий это созданный новый проект
-
@Fox Интересно конечно и именно из-за этого я на 50% перешел на js т.к. в js я понимаю как работают методы, а в БАС экшенах одному разрабу известно. Была текстовая подробная документация в место видео помне было бы лучше.
-
@BabloUser Не заваливайте тест на внимательность.
Если скопировать экшены из второго проекта в новый, то они тоже будут работать.
Вопрос: Почему?
-
@Denis_krsk Не разочаровывайте меня, всё дело как раз в js. BAS тоже работает на JavaScript.
Ну или скажите, если тема с загадками тухлая..
-
как вот это понимать? без загадок
-
@Fox Скопировал не работает :)
-
ребята объясните нормально что за фигня твориться почему в одном работает а в другом не работает? По человечески без загадок.
в архиве приложено два проекта они подписаны
0_1521218303030_2.zipРабочий - Это скопираванный проект в котором регулярка работает в нем все удалено кроме 3 кубиков читаем, получаем данные регуляркой, вывыгодим в лог.
Не рабочий - Это тот проект который создавался как новый, и все 3 кубика прописаны руками то есть не копированные из рабочего проекта.
Функционал идентичный
как вам такая загадка )
p.s
бас переустанавливал с полной очисткой от прежней версии, без результативно
-
This post is deleted!
-
@BabloUser Одному @Fox Известно :) Я не настолько хорошо знаю js, читаю по маленьку :)
-
@Denis_krsk это явный баг, либо в функционале самого баса либо на стороне моего компа.
-
первый
var regexp_result = native("regexp", "first", JSON.stringify({ text: VAR_NEW_LIST, regexp: "\u005cd" })) if (regexp_result.length == 0) regexp_result = [] else regexp_result = JSON.parse(regexp_result) VAR_ALL_MATCH = regexp_result.pop() if (typeof(VAR_ALL_MATCH) == 'undefined' || !VAR_ALL_MATCH) VAR_ALL_MATCH = "" VAR_GROUP1 = regexp_result[0] if (typeof(VAR_GROUP1) == 'undefined' || !VAR_GROUP1) VAR_GROUP1 = "" VAR_GROUP2 = regexp_result[1] if (typeof(VAR_GROUP2) == 'undefined' || !VAR_GROUP2) VAR_GROUP2 = "" VAR_GROUP3 = regexp_result[2] if (typeof(VAR_GROUP3) == 'undefined' || !VAR_GROUP3) VAR_GROUP3 = "" if (regexp_result.length == 0) { VAR_GROUP1 = VAR_ALL_MATCH }
второй
VAR_NEW_LIST = (VAR_NEW_LIST).join(",") var regexp_result = native("regexp", "first", JSON.stringify({ text: VAR_NEW_LIST, regexp: "\u005cd" })) if (regexp_result.length == 0) regexp_result = [] else regexp_result = JSON.parse(regexp_result) VAR_ALL_MATCH = regexp_result.pop() if (typeof(VAR_ALL_MATCH) == 'undefined' || !VAR_ALL_MATCH) VAR_ALL_MATCH = "" VAR_GROUP1 = regexp_result[0] if (typeof(VAR_GROUP1) == 'undefined' || !VAR_GROUP1) VAR_GROUP1 = "" VAR_GROUP2 = regexp_result[1] if (typeof(VAR_GROUP2) == 'undefined' || !VAR_GROUP2) VAR_GROUP2 = "" VAR_GROUP3 = regexp_result[2] if (typeof(VAR_GROUP3) == 'undefined' || !VAR_GROUP3) VAR_GROUP3 = "" if (regexp_result.length == 0) { VAR_GROUP1 = VAR_ALL_MATCH }
во втором список всклеевается в строку, джойн об этом недвусмысленно намекает
-
@ruzne почему он так генерируется? где загвоздка?
-
@BabloUser said in БАГ Не работает регулярное выражение в списке:
@ruzne почему он так генерируется? где загвоздка?
VAR_NEW_LIST = (VAR_NEW_LIST).join(",")
VAR_NEW_LIST во втором не список, не объект и не коллекция, а строка
-
@ruzne так это понятно так почему редактор баса генерирует код неправильно из кубика?
да и списки тут как бы не причем так как чтение из списка читается правильно в переменной список а не строки в одну строку. Если смотреть в редакторе.