[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярные выражения.
Vladimir67
1. Спасибо за Курс - вообще, недавно стал просматривать, интересно,
даже возможно талантливо ( это почти без юмора)
особенно, как мне кажется, для относительного новичка, с нуля, думаю,
только очень таланьливый(ая) не бросит.
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)
Цитата
и почему второй фор начинается с j=1 а не 0

потому что первый символ (нулевой в массиве) мы проверили в первом цикле.

Я тоже ничего не понял.
Попробуем
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

Несмотря на сплошные совпадения.


_____________
Век живи, век учись, и все без толку.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.