просто чем отличаются эти два варианта: тем, что жадная регулярка сначала найдет самое жадное совпадение. Что общего: обе регулярки будут для каждого символа проверять шаблон, жадная - с конца, нежадная - с начала. Т.е. расклады могут быть разные. Так что имхо неочевидно, что быстрее
|
Цитата:
|
x-yuri, +1
Из вики: Цитата:
/a[\w\d]*\d/.test('a1bcdefghjk') -- схватили первое 'a', потом залезли в конец и начали отматывать аж до 'b'. Нежадный схватил бы пустую строку, не нашел за ней цифру, взял 'b' и готово. |
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
А раз результаты на тестируемом тексте разные, значит сравнивать производительность таким тестом не корректно. Цитата:
|
Результаты разные? А запускать не пробовали?
>>> /a[\w\d]*\d/.test('a1bcdefghjk') true >>> /a[\w\d]*?\d/.test('a1bcdefghjk') true В варианте 2 и Вы, и я сказали то же самое :) А вот в варианте 1 именно отматывается Kolyaj, Цитата:
|
Конец максимального совпадения тоже еще найти надо. Но вы правы в том, что нужно просто знать, где какой квантификатор использовать.
|
Цитата:
Ладно, сдаюсь :) . |
Часовой пояс GMT +3, время: 05:12. |