Показать сообщение отдельно
  #3 (permalink)  
Старый 03.02.2012, 21:07
Аспирант
Отправить личное сообщение для jsuse Посмотреть профиль Найти все сообщения от jsuse
 
Регистрация: 10.04.2010
Сообщений: 92

Сообщение от 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+. Но он их не выводит. Почему?

Последний раз редактировалось jsuse, 03.02.2012 в 21:10.
Ответить с цитированием