Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Квантификаторы - разница между /.+?/ и /.*/
 
 автор: forma   (27.01.2011 в 18:39)   письмо автору
 
 

Какая разница между
/.+?/
и
/.*/
?

По моей логике разницы быть не должно, но она есть в этом регулярном выражении:
/A(.+?)B/is

В первом случае строка находится, а во втором нет.

  Ответить  
 
 автор: forma   (27.01.2011 в 19:44)   письмо автору
 
   для: forma   (27.01.2011 в 18:39)
 

А, я случайно наткнулся на объяснение:
Есть еще одна тонкость в использовании метасимвола '?'. Посмотрите на такое выражение: /.+a/. Ожидается, что оно вернет нам часть текста до первого вхождения символа 'a' в этот текст. На самом деле оно будет работать несколько не так, как ожидается и результатом поиска будет весь текст до последнего вхождения символа 'a'. Дело в том, что по умолчанию количественные метасимволы "жадничают" и пытаются захватить как можно больший кусок текста. Если это не нужно (как а нашем случае), то необходимо "отучить" их от жадности, указав знак '?' после количественного метасимвола: /.+?a/. После этого выражение будет работать так как надо.

Всем спасибо, все свободны.

  Ответить  
 
 автор: dima4321   (27.01.2011 в 21:05)   письмо автору
 
   для: forma   (27.01.2011 в 18:39)
 

.+?m-- не жадно. Захватит текст до первой m
.+m--жадно Захватит текст до конца и отсупит назад до перовй m с конца

  Ответить  
 
 автор: forma   (13.03.2011 в 16:42)   письмо автору
 
   для: dima4321   (27.01.2011 в 21:05)
 

Спасибо.

  Ответить  
 
 автор: Trianon   (27.01.2011 в 23:07)   письмо автору
 
   для: forma   (27.01.2011 в 18:39)
 

Откуда Вы взяли это слово, которое в теме?

  Ответить  
 
 автор: forma   (13.03.2011 в 16:39)   письмо автору
 
   для: Trianon   (27.01.2011 в 23:07)
 

Уже не вспомню. Может быть отсюда:
http://moneymaster.ru/tutor/php1/gl7_5.php.htm
Может быть не я писал это слово, а оно было добавлено одним из модераторов.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования