После Split string that used to be a list, я делаю это:Интеллектуальное регулярное выражение, чтобы понять вход
console.log(lines[line]);
var regex = /(-?\d{1,})/g;
var cluster = lines[line].match(regex);
console.log(cluster);
, который даст мне это:
((3158), (737))
["3158", "737"]
где 3158 будет последним рассматриваться в качестве идентификатора в моей программе и 737 связанные данные.
мне интересно, если есть способ, чтобы обработать входы этого вида тоже:
((3158, 1024), (737))
где ID будет пара, и сделать что-то вроде этого:
var single_regex = regex_for_single_ID;
var pair_regex = regex_for_pair_ID;
if(single_regex)
// do my logic
else if(pair_regex)
// do my other logic
else
// bad input
является то, что возможное?
Разъяснение:
То, что я заинтересован в лечит два случая по-разному. Например одно решение будет иметь такое поведение:
((3158), (737))
["3158", "737"]
и для пар, сцепить ID:
((3158, 1024), (737))
["31581024", "737"]
Позвольте пояснить, вы ожидаете получить вход '((3158, 1024), (737))' и вы хотите совместить '3158, 1024' как единый идентификатор, это правильно? Или вы ожидаете сопоставить '3158' как идентификатор и' 1024' в качестве идентификатора и вернуть два идентификатора? – vlaz
Одиночная или пара '(-? \ D +) (?: \ S *, \ s * (-? \ D +))?' Или '-? \ D + (? \ S *, \ s * -? \ D +) ? 'или' (-? \ d + (? \ s *, \ s * -? \ d +)?) 'Это зависит от того, что вы хотите видеть запятой в массиве и т. д. – sln
vlaz обновлен. @sln хм, это правильно? Я имею в виду, что все регулярное выражение у вас есть в коде? Оба будут приводить к синтаксической ошибке, если я делаю 'var regex = ..."; ' – gsamaras