@perhorovich said in регулярное выражение:
<p\ class="otp">([\s\S]*?)</p>
спасибо)))))
Корежит выражение такого типа при установке переменной и получается каша в скрипте результате.
[[NEW_VARIABLE]][[[NEW_VARIABLE]].length-1].split('"')[0]
И есть ли еще какие-то варианты работы со строками, кроме регулярок и разбиения на список? Например, можно было бы несколько простых функций ввести: поиск подстроки в строке, удаления строки с позиции, копирование подстроки с позиции.
Да, ошибочка. [[NEW_VARIABLE]][[[NEW_VARIABLE]].length-1].split('"')[0]
По сути это что? Взять последнюю строку из массива строк, и из нее - первый компонент, если разделитель двойная кавычка?
Взять последнюю строку из списка строк, и эту строку разбить в список разделителем двойная кавычка и взять первую строку.
Выход - всего-то поставить пробельчик между "[", выполняющей роль индекса массива, и "[[", обрамляющими название переменной. Получается прекрасный скрипт типа такого:
section_start("", 472569087)!
VAR_NEW_VARIABLE = []
VAR_NEW_VARIABLE.push("123\u0022456\u0022789")
VAR_NEW_VARIABLE.push("abc\u0022def\u0022hij")
VAR_NEW_VARIABLE.push("ABC\u0022DEF\u0022HIJ")
section_end()!
section_start("", 977009027)!
VAR_AAA = VAR_NEW_VARIABLE[ VAR_NEW_VARIABLE.length-1].split('"')[0]
section_end()!
Парсер/кодген BAS в этом смысле очень простой. Для него любая комбинация "[[" как красная тряпка для быка. Сразу накидывается конвертировать в VAR_ переменную. Ставим пробел и подталкиваем его в нужном направлении.