Вы можете сделать что-то вроде этого
var numbers = "3 7 6 5 4 3 2 1"; // list of numbers
var iter = numbers.split(" ")[0] // get first number
numbers = numbers.substr(iter.length+1) // chop off first number, and the space that follows it you can comment
var rex = new RegExp("(?:\\d(?: |$)){" + iter + "}","") // create regex
alert((numbers.match(rex)||[]).join("\n")) // a sample alert that joins the array to a string with an element on each line
В качестве альтернативы, если вы хотите, чтобы первая цифра, которая определяет число вхождений в одном массиве, некоторые изменения позволяют
var numbers = "3 7 6 5 4 3 2 1"; // list of numbers
var iter = numbers.split(" ")[0] // get first number
var rex = new RegExp("(?:\\d(?: |$)){" + (+iter+1) + "}","") // create regex
alert((numbers.match(rex)||[]).join("\n")) // a sample alert that joins the array to a string with an element on each line
что язык, который вы используете? –
Это, как правило, крайне не поддерживается. Вероятно, это возможно с помощью [кодовое обозначение кода] (http://perldoc.perl.org/perlretut.html#A-bit-of-magic:-executing-Perl-code-in--regular-expression), но это функция, которую некоторые люди не любят (вам следует беспокоиться, когда Perl RE docs говорят «Немного волшебства»). Вы могли бы также написать два шаблона: получить номер, проанализировать его и построить второй шаблон (или запустить '\ s + \ d +' 'n' раз). – Kobi
@Kobi Это может быть anwer – hek2mgl