![]() |
Конструкция .+? в регулярном выражении
Что означает такая конструкция
Код AS3:
Нашел ее, когда искал как выявлять ссылки из html-кода. На мой взгляд она аналогична Код AS3:
Пример для тестирования. Код AS3:
Код AS3:
Код AS3:
|
Цитата:
Цитата:
|
М. Секунду. Я проверил, первая регулярка вытаскивает только один символ, тогда как вторая может вытащить многим больше.
Код AS3:
Символ "?" применителен для одного символа или группы. Поэтому нужно ему подавать группу, без нее он вытаскивает лишь один символ. |
А что ж во втором это значит, что ? вообще не работает?
|
Честно говоря, я не разбирался в Вашей полной регулярке, я протестировал конкретный этот кусочек. В моем тесте ".+?" вытаскивает не более одного символа, что, в принципе, логично.
Какое поведение Вы у себя наблюдаете? |
Наблюдаю, то, что и хочу получить
Цитата:
Добавлено через 11 минут Все нашел-нашел-нашел! Разобрался: Цитата:
|
Кратко:
Есть строка "abaca". Есть регулярка /a((.+)?)a/ Она выдаст тебе "b". Без знака вопроса (/a(.+)a/) она выдаст "bac". |
Цитата:
2MikroAcse, ты не о том. Обрами свои регулярки в ^ И $ и увидишь, что у тебя они идентичны, так как ты используешь "?" для группы. И в первой регулярке можно смело снести внешнюю пару скобок, чтобы итоговый результат не давал лишнее совпадение. |
КорДум, ага. Спасибо за пояснения.
|
| Часовой пояс GMT +4, время: 15:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.