У меня есть 2 регулярных выражения, которые отлично работают на regex101, но в скрипте листа одно ( REGEX_RANGO ) возвращает false при вызове .test, а другое ( REGEX_INVIDIDUAL ) не работает вообще.
(Примечание: я использую ячейку на листе для отладки подобной ситуации, я не знаю, лучше ли это, если кто-то знает, пожалуйста, опубликуйте ее!)
Мои текущие регулярные выражения:
var REGEX_RANGO = /((?=(\d|\,))(\d{1,3}-\d{1,3})+(?=(\s|\,)))/gm;
var REGEX_INDIVIDUAL = /((?<=,)|(?:^(\d)))[^(,|\-)\n]+((?=,)|(?:\s))/gm;
Зачем мне оба? У меня есть форма, к которой люди могут присоединяться к значениям, и с ними могут работать регулярные выражения.
Входные данные имеют вид:
*000-005,100,200,250-275,300*
:
- REGEX_RANGO должен получить в массиве значения [000,005,250,275]
- REGEX_INDIVIDUAL в другом массиве должно получить [100,200,300]
*001,002,003,010-015*
:
- REGEX_RANGO должен получить в массиве значения [010,015]
- REGEX_INDIVIDUAL должно получить [001,002,003]
Надеюсь, кто-то знает, как с этим справиться, спасибо. Вы можете найти мои текущие попытки
здесь и здесь .
Чтобы быть ясным: это работает нормально на regex101, а не в Google Sheet, может быть, область или мне нужно отменить регулярное выражение?
РЕДАКТИРОВАНИЕ:
var REGEX_INDIVIDUAL = /((?<=,)|(?:^(\d)))[^(,|\-)]+(?=($|,))/gm;
var j = numeros_ingresados.match( REGEX_INDIVIDUAL )
SpreadsheetApp.getActiveSheet( ).getRange("F1").setValue( " >> j : " + j )