Сообщение от B@rmaley.e><e
|
Потому что добавление ? сразу после + или * делает этот квантификатор нежадным.
|
Нет, вы не так поняли. Обратите внимение, я не
123 456
написал, а
123 4 56
Я знаю, что делает знак вопроса "?" с квантификаторами. Он переводит их в "ленивый" режим. Это понятно. Непонятно, почему не выводятся 5 и 6 потом. Снова формула и смотрите действия:
var str = "123 456";
var regexp = /\d+ \d+?/g;
1) \d+ - выводит 123. Понятно.
2) \d+? - выводит 4. Это тоже понятно. И получатеся выдав 4ку, он прошел все регуляное выражение. А так как есть еще цифры после 4ки, он начинает все сначала. И началом для него служит уже 5ка. А 5 и 6 как раз подпадают под \d+. Но он их не выводит. Почему?