даже возможно талантливо ( это почти без юмора)
особенно, как мне кажется, для относительного новичка, с нуля, думаю,
только очень таланьливый(ая) не бросит.
2. Если начало строки #, а $ конец строки,
то почему в примере - ('#^[a-zа-яё0-9]+$#ui'
после "+" стоит $# ?
Спасибо.
Спустя 5 минут, 54 секунды (12.09.2010 - 17:12) Ice написал(а):
Начало строки ^, а # в данном случае выбранный ограничитель шаблона подстановки.
Спустя 52 минуты, 17 секунд (12.09.2010 - 18:04) Vladimir67 написал(а):
Ясно, thanks.
Спустя 8 дней, 6 часов, 4 минуты, 48 секунд (21.09.2010 - 00:09) cybernic написал(а):
Второй урок
Не понял почему там
for($i = 0; $i < strlen($subject); ++$i)
{
for($j = 1; $j < strlen($pattern); ++$j)
if($pattern[$j] == $subject[$i + $j])
return true;
}
Не понял почему там
if($pattern[$j] == $subject[$i + $j])
Цитата |
Допустим нам нужно узнать, есть ли какая то из нескольких букв в строке. |
а не
if($pattern[$j] == $subject[$i])
и почему второй фор начинается с j=1 а не 0 ?
Спустя 5 часов, 9 минут, 56 секунд (21.09.2010 - 05:19) twin написал(а):
Цитата |
и почему второй фор начинается с j=1 а не 0 |
потому что первый символ (нулевой в массиве) мы проверили в первом цикле.
Цитата |
Не понял почему там if($pattern[$j] == $subject[$i + $j]) |
потому что нужно сверять символы по очереди, а не один с индексом $i. По этому он (индекс) инкрементируется (увеличивается) во втором цикле.
Спустя 3 месяца, 13 дней, 8 часов, 25 минут, 37 секунд (4.01.2011 - 14:44) ShamanV написал(а):
Цитата (twin @ 21.09.2010 - 02:19) | ||
потому что первый символ (нулевой в массиве) мы проверили в первом цикле. |
Я тоже ничего не понял.
Попробуем
var_dump(regExp('#[ABH]#', 'Hello World')); // boolean false
Не прошло, и не могло пройти, т.к. проверка $subject начинается со второго символа ($i + $j всегда будет больше 0).
Попробуем
var_dump(regExp('#[emq]#', 'Hello World')); // boolean false
Аналогично. Символы для сравнения берутся из $pattern начиная $j, которая не принимает значений, меньше 1.
Наконец
var_dump(regExp('#[111111111111 Hello World]#', 'Hello World')); // boolean false
Несмотря на сплошные совпадения.
_____________
Век живи, век учись, и все без толку.