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

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

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

 

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

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

тема: Найти в тексте.
 
 автор: dima2207   (21.01.2008 в 23:04)   письмо автору
 
 

Всем привет !
разбираю строку : www.allmovie.com/cg/avg.dll?p=avg&sql=1:249188
на выходе получаю : www.allmovie.com/cg/avg.dll?p=avg
куда теряется : &sql=1:249188
что не так ?

preg_match_all("#www.allmovie.com/([^&]+)#is",$typ1[$i],$out);

   
 
 автор: Faraon   (21.01.2008 в 23:42)   письмо автору
 
   для: dima2207   (21.01.2008 в 23:04)
 

Интересно, а что в итоге хотите получить?
И как вы думаете что это значит [^&]+ ? :)

   
 
 автор: dima2207   (21.01.2008 в 23:51)   письмо автору
 
   для: Faraon   (21.01.2008 в 23:42)
 

если чесно , то регулярные выражения для меня - темный лес , поэтому я действую методом "научного тыка".
а получить мне надо всю строку целиком !

   
 
 автор: Trianon   (22.01.2008 в 00:04)   письмо автору
 
   для: dima2207   (21.01.2008 в 23:51)
 

>а получить мне надо всю строку целиком !

Тогда проще написать $out = $typl[$i];

   
 
 автор: dima2207   (22.01.2008 в 00:11)   письмо автору
 
   для: Trianon   (22.01.2008 в 00:04)
 

да нет , есть массив , и мне нужно найти все соответствия в нем !

   
 
 автор: SHAman   (22.01.2008 в 00:10)   письмо автору
 
   для: dima2207   (21.01.2008 в 23:04)
 

preg_match_all("#www.allmovie.com/([^ ]+)#is",$typ1[$i],$out); 

   
 
 автор: dima2207   (22.01.2008 в 00:15)   письмо автору
 
   для: SHAman   (22.01.2008 в 00:10)
 

странно , а я пробовал так-же , только без пробела после ^ .

   
 
 автор: SHAman   (22.01.2008 в 01:33)   письмо автору
 
   для: dima2207   (22.01.2008 в 00:15)
 

:) дык в пробеле вся фишка.

Разберем по-частям:
#www.allmovie.com/([^ ]+)#is

www.allmovie.com/ - ищем точное совпадение.
[^ ] - отрицательный класс символов, содержащий только пробел.

Класс символов - это перечисление "какой-то из этих символов может стоять здесь". Например, м[аы][мл]а подойдет к "мама", "мыла", "мыма", "мала".

Отрицательный класс символов - это когда "здесь может стоять что угодно, кроме одного из перечисленных символов". Отрицательный класс выглядит так: [^здесь символы]

То есть, конструкция [^ ] обозначает "не пробел". Ее можно, так же, обозначить \S.

символ + после отрицательного класса - это квантификатор. Он говорит "ближайший контейнер до меня идет один и более раз". Контейнер - это либо класс символов, либо символ, либо что-то, заключенное в круглые скобки. Например:

м[абв]+ма будет соответствовать "мааама", "мббббма", "мввввввввва".

Совместно, конструкция [^ ]+ обозначает "один или больше символов, все из которых - не пробел".

Итак, мы ищем кусок текста, а потом сколько угодно символов после него, не являющихся пробельными. Это нам и нужно, на сколько я понимаю.

   
 
 автор: dima2207   (22.01.2008 в 11:13)   письмо автору
 
   для: SHAman   (22.01.2008 в 01:33)
 

Спасибо за информацию !

   
Rambler's Top100
вверх

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