2012-03-11 4 views
5

Я нашел это: Regex to match digits of specific length, но он говорит о Python. Я хочу иметь возможность получить группу случайных чисел определенной длины. Поэтому, если у меня есть 167691#15316243, он будет соответствовать 15316243. Я не уверен, как это реализовать. прямо сейчас у меня есть new RegExp('[0-9]+', "g");, который соответствует группе чисел в порядке, но теперь я понял, что у меня будет несколько раз, когда у меня будет более одной группы, и мне нужна только группа из восьми чисел.Regex соответствует определенной группе цифр определенной длины?

ответ

10

Вы можете указать длину набора соответствия, используя {}.

Например: [0-9]{8}

который будет соответствовать любые цифры от 0 до 9 с определенной длиной 8 символов.

Вы также можете указать диапазон мин/макс, а не форсировать определенный legnth. Так что если вы хотели мин от 4 и максимум из 8 пример изменится на: [0-9]{4,8}

+0

Вы почти наверняка хотите границы. – tchrist

2

Проще говоря количество повторений в фигурных скобках:

"167691#15316243".match(/\d{8}/g); 

Вот скрипка: http://jsfiddle.net/3r5vd/


Я хотел бы предложить вам прочитать this article (прокрутите вниз к разделу Ограничение повторения).

Вот цитата:

Современные регулярные выражения вкусов [...] имеют дополнительный оператор повторения, который позволяет указать, сколько раз маркер может быть повторен. Синтаксис: {min,max}, где min - положительное целое число, указывающее минимальное количество совпадений, а max - целое число, равное или большее min с указанием максимального количества совпадений. Если запятая присутствует, но max опущено, максимальное число совпадений бесконечно. Таким образом, {0,} - это то же самое, что и *, и {1,} - это то же самое, что и +.
Опуская как запятую, так и max, говорит, что двигатель повторяет токен точно min раз.

14
[0-9]+ - Matches one or more numbers 
[0-9]{8} - Matches exactly 8 numbers. 
[0-9]{8,10} - Matches between 8 and 10 numbers. 
[0-9]{8,} - Matches 8 or more numbers. 
[0-9]* - Matches zero or more numbers. 
[0-9]? - Matches zero or one number. 
+0

[0-9] {8,} - минимальная длина 8 – ThoQ

+0

@ThoQLuong добавлено, спасибо! Не смог принять обзор из-за требований к репутации. – Nathan

+0

Важное примечание: не добавляйте пробел после coma в '{8,10}'. Он должен быть точно '{8,10}' not '{8, 10}' – Alendorff

Смежные вопросы