БАГ Не работает регулярное выражение в списке
-
как вот это понимать? без загадок
-
@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 так это понятно так почему редактор баса генерирует код неправильно из кубика?
да и списки тут как бы не причем так как чтение из списка читается правильно в переменной список а не строки в одну строку. Если смотреть в редакторе.
-
@ruzne Блин, а я все пересмотрел, а на список даже не глянул и в голову не пришло, что стандартный кубик список может быть изменен. Только не пойму это вручную изменили или в какой-то версии БАС он так работал, или просто глюк :)
-
@BabloUser я не смотрел кубики я, это долго
-
@ruzne это баг именно порится через редактор в этом весь смысл.
-
Все очень просто. В версии, в которой был создан рабочий проект - было принудительное преобразование в строку скорее всего, потом оно куда то пропало.
@BabloUser Ваша проблема решается действием обьеденить список в строку
-
@BabloUser это фитча, сбоку есть панель скрипт, его можно писсать
-
@DrPrime как решить то это понятно просто сам факт того что раньше все нормально работало теперь какие то костыли придется делать я уже привык регуляркой по списку гонять без объяденения строк. Нет я сейчас все таки поставлю версию баса ниже.
-
я бы на этом не остановился, протер бы контакты процессора стирательной резинкой и наверняка переустановил виндовз
-
20.6.4 все работает нормально
значит это либо баг новой версии либо задумка кодера что в новой версии теперь не заюзать регулярку в списке как в 20.6.4
можно вопрос закрывать и ждать ответ разраба
Временное решение проблемы тупо перекидывать проект из рабочего проекта и редактировать уже в нем.
Или как предложил DrPrime
-
@ruzne переустановил бы не виндовз а виртуальную машину с виндовсз а лучше откатил отпечаток на свежеустановленую систему
-
вроде так массив можно регулярками раскидать
str.match( /regexp/g );