Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Что не так с регуляркой?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Viper
Отправлено: 09 Февраля, 2010 - 14:14:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




есть такое
CODE (html):
скопировать код в буфер обмена
  1. <td class="nm"><a href="/name/nm0347797/" onclick="(new Image()).src='/rg/castlist/position-1/images/b.gif?link=/name/nm0347797/';">bullet</a></td>

после
PHP:
скопировать код в буфер обмена
  1. preg_match('/<table class="cast">(.+)<\/table>/', $f, $hit);

получаем такое
CODE (html):
скопировать код в буфер обмена
  1. <td class="nm"><a href="/name/nm0347797/">bullet</a></td>

после
PHP:
скопировать код в буфер обмена
  1. preg_match('/<td class="nm"><a href="\/name\/nm\d{1,8}\/">bullet<\/a><\/td>/i',$s,$results);

получаем трехпальцевую фигуру... В чем затык?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Champion Супермодератор
Отправлено: 09 Февраля, 2010 - 14:30:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




В скобки возьми. Ты число \d{1,8} вот это выдрать патылся?
 
 Top
Viper
Отправлено: 09 Февраля, 2010 - 16:13:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Champion пишет:
В скобки возьми. Ты число \d{1,8} вот это выдрать патылся?

не совсем. мне текст bullet нужен.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
kochan10
Отправлено: 09 Февраля, 2010 - 19:42:29
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Млин, я туплю, поэтому стираю предыдущие коменты))) Я просто в тему не въехал.
Что именно из чего получаешь и что нужно?

(Отредактировано автором: 09 Февраля, 2010 - 20:09:57)

 
 Top
movEAX
Отправлено: 09 Февраля, 2010 - 21:22:38
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Цитата:
'/<td class="nm"><a href="\/name\/nm\d{1,8}\/">bullet<\/a><\/td>/i'

Ну что вы все так извращаетесь с "/". Не проще написать вот так?
@<td class="nm"><a href="/name/nm\d{1,8}/">bullet</a></td>@i

По теме:
Если нужен текст внути тега <a>. То пользуйте такой шаблон:
@<a[^>]+>([^<]+?)@


-----
армия.. самое убогое место
 
 Top
Viper
Отправлено: 10 Февраля, 2010 - 07:48:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




PHP:
скопировать код в буфер обмена
  1. preg_match('@<td class="nm"><a href="/name/nm\d{1,8}/">bullet</a></td>@i',$s,$results);

результата 0


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Champion Супермодератор
Отправлено: 10 Февраля, 2010 - 10:18:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Viper пишет:
не совсем. мне текст bullet нужен.
Его и возьми в скобки:
CODE (htmlphp):
скопировать код в буфер обмена
  1. /<td class="nm"><a href="\/name\/nm\d{1,8}\/">(\w+)<\/a><\/td>/i
 
 Top
Viper
Отправлено: 10 Февраля, 2010 - 11:29:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Champion спсб! получилось. и вопрос в продолжение... если к примеру строка вида

CODE (html):
скопировать код в буфер обмена
  1. </h5><small> (<a href="/wga">WGA</a>)</small></td></tr><tr><td valign="top"><a href="/name/nm0472567/"></a></td><td>&nbsp;</td><td valign="top">(written by) & </td></tr><tr><td valign="top"><a href="/name/nm0649460/">Roberto Orci</a></td><td>&nbsp;</td><td valign="top">(written by) & </td></tr><tr><td valign="top"><a href="/name/nm0476064/">Alex Kurtzman</a></td><td>&nbsp;</td><td valign="top">(written by


т.е. можно ли выбрать все имена до определенного символа(ов к примеру ")<br>")
preg_match('@<a href="/name/nm\d{1,8}/">(.*)</a>@isU', $hit[1], $s);
он выведет только первое, что и понятно. как указать ему что "продолжить поиск" дальше "до"...

(Отредактировано автором: 10 Февраля, 2010 - 11:29:59)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Champion Супермодератор
Отправлено: 10 Февраля, 2010 - 11:51:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




что-то я не совсем понял. Пример можешь написать? Типа есть строка из нее получить строку такую и такую.
Кстати, будет лучше, если ты не будешь пользоваться подсветкой ситаксиса, а то как-то не удобно читается) Сунь не в [code], а в [quote]
 
 Top
Viper
Отправлено: 10 Февраля, 2010 - 12:31:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




ну это не совсем строка, это я уже привел её к такому виду. вообще это документ
к примеру http://www[dot]imdb[dot]com/title/tt1055369/fullcredits получаю отсюда сырец. далее мне нужно получить "Writing credits", "Cast" и т.д. т.е. имена и фамилии без тегов html. собственно порезать документ на нужные части не составляет труда. проблема с отсеиванием нужных строк.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Champion Супермодератор
Отправлено: 10 Февраля, 2010 - 13:08:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




preg_match_all() и регулярку, которая отюда вытащит:
<a class="glossary" name="writers" href="/Glossary/W#writer">Writing credits</a>
 
 Top
Viper
Отправлено: 10 Февраля, 2010 - 16:00:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Все. Сделал Улыбка

PHP:
скопировать код в буфер обмена
  1. function getMovieScenarists($imdb_website) {
  2.         if (preg_match('@<a[^>]*>Writing credits</a>(.*)\)<br[^>]*>@isU', $imdb_website, $hit)) {
  3.                 preg_match_all('@<a href="/name/nm\d{1,8}/">(.*)</a>@isU', $hit[1], $matches);
  4.                 $result_temp = implode(', ', $matches[1]);
  5.                 $result_decoded = html_entity_decode($result_temp);
  6.                 $result = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $result_decoded);
  7.                 // return string
  8.                 return $result;
  9.         } else {
  10.                 return false;
  11.         }
  12. }


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB