Спасибо
Спустя 35 минут, 36 секунд (5.11.2010 - 23:17) kirik написал(а):
Цитата (program90 @ 5.11.2010 - 14:41) |
Звездочка означает что символ входит любое число раз. А ? означает ноли или один раз. |
Это верно. Но если знак вопроса идет после + или * это уменьшает "жадность" выражения. Тоесть оно перестает захватывать все на своем пути.
Толковое объяснение можно найти на php.net (на английском).
Цитата |
However, if a quantifier is followed by a question mark, then it becomes lazy, and instead matches the minimum number of times possible |
Спустя 33 минуты, 8 секунд (5.11.2010 - 23:50) program90 написал(а):
А почему оно должно захватывать все? Что это значит на таком примере:
<p><b>Википедия</b> — свободная энциклопедия, в которой <i>каждый</i> может изменить или дополнить любую статью</p>
Т.е. будет взято все что находится между первой скобкой, и самой последней, в конце всего текста?
Т.е. под ленивостью имеется ввиду, что в случае, когда две строки подходят, и одна короче другой, и обе начинаются с одного места, выбрана будет та строка, которая длиннее?
<p><b>Википедия</b> — свободная энциклопедия, в которой <i>каждый</i> может изменить или дополнить любую статью</p>
Т.е. будет взято все что находится между первой скобкой, и самой последней, в конце всего текста?
Т.е. под ленивостью имеется ввиду, что в случае, когда две строки подходят, и одна короче другой, и обе начинаются с одного места, выбрана будет та строка, которая длиннее?
Спустя 4 минуты, 51 секунда (5.11.2010 - 23:55) kirik написал(а):
Цитата (program90 @ 5.11.2010 - 15:50) |
Т.е. будет взято все что находится между первой скобкой, и самой последней, в конце всего текста? |
Ага. А если вопросительный знак будет, то захавает только до первого совпадения.
Цитата (program90 @ 5.11.2010 - 15:50) |
Т.е. под ленивостью имеется ввиду, что в случае, когда две строки подходят, и одна короче другой, и обе начинаются с одного места, выбрана будет та строка, которая длиннее? |
Скорее наоборот - ленивый не пойдет дальше первого совпадения, т.е. строка будет короче.
UPD
Цитата |
При строке: <p><b>Википедия</b> — свободная энциклопедия</p> жадный сожрет всю строку: <p><b>Википедия</b> — свободная энциклопедия</p> а ленивый только: <p> |
Спустя 7 минут, 21 секунда (6.11.2010 - 00:02) program90 написал(а):
понятно. Спасибо большое!