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
Форумы портала PHP.SU :: Версия для печати :: Регулярное выражение
Форумы портала PHP.SU » » Вопросы новичков » Регулярное выражение

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

1. event - 21 Августа, 2012 - 06:11:56 - перейти к сообщению
Привет, есть такой HTML код:
CODE (text):
скопировать код в буфер обмена
  1. <a href="/level/10/m_act%5Bcountry%5D/8/" >Франция</a>, <a href="/level/10/m_act%5Bcountry%5D/11/" >Великобритания</a>, <a href="/level/10/m_act%5Bcountry%5D/14/" >Италия</a>, <a href="/level/10/m_act%5Bcountry%5D/50/" >Тунис</a>                    </div>
  2.    


Мне нужна регулярка чтобы парсила страны, и на выходе получилось: Франция, Великобритания, Италия, Тунис

Заранее спасибо.
2. ams - 21 Августа, 2012 - 06:43:59 - перейти к сообщению
#<a href="\/level\/10\/[^>]+>([^<]+)#
3. event - 21 Августа, 2012 - 07:08:09 - перейти к сообщению
чего-то не воркает
(Добавление)
Пробую, так-же вот так:
PHP:
скопировать код в буфер обмена
  1. preg_match('#<a href="/level/10/m_act%5Bcountry%5D/[0-9]*/" >(.*?)</a>#s', $html_two, $country);               
  2.  
  3. var_dump($country);
Тоже ничего... Не понял
4. Stivir - 22 Августа, 2012 - 10:38:05 - перейти к сообщению
event, если Ваша страница не в utf-8, то так:
PHP:
скопировать код в буфер обмена
  1. $rick = '<a href="/level/10/m_act%5Bcountry%5D/8/" >Франция</a>, <a href="/level/10/m_act%5Bcountry%5D/11/" >
  2. Великобритания</a>, <a href="/level/10/m_act%5Bcountry%5D/14/" >Италия</a>,
  3. <a href="/level/10/m_act%5Bcountry%5D/50/" >Тунис</a>';
  4. $needle = "#[а-я]+#i";
  5. preg_match_all($needle, $rick, $matches);
  6. print_r($matches);


может кто-нибудь знает аналог preg_match_all для мультибайтных кодировок?
5. Bartezz - 22 Августа, 2012 - 10:46:37 - перейти к сообщению
#<a href=\"\/level\/10\/m_act\%5Bcountry\%5D\/.+\" >(.+)<\/a>#U

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $html = '<a href="/level/10/m_act%5Bcountry%5D/8/" >Франция</a>, <a href="/level/10/m_act%5Bcountry%5D/11/" >Великобритания</a>, <a href="/level/10/m_act%5Bcountry%5D/14/" >Италия</a>, <a href="/level/10/m_act%5Bcountry%5D/50/" >Тунис</a>';
  3. preg_match_all("#<a href=\"\/level\/10\/m_act\%5Bcountry\%5D\/.+\" >(.+)<\/a>#U", $html, $out);
  4.  
  5. var_dump($out);
  6. ?>


Stivir а если выше этого кода (или ниже) есть еще русскоязычные слова что в итоге получится?
6. Мелкий - 22 Августа, 2012 - 11:18:23 - перейти к сообщению
Stivir пишет:
может кто-нибудь знает аналог preg_match_all для мультибайтных кодировок?

Он же. Модификатор u
http://www.php.net/manual/en/ref...rn.modifiers.php
7. Stivir - 22 Августа, 2012 - 16:04:03 - перейти к сообщению
Bartezz при желании можно выдернуть кусок кода из общего хтмл, но в общем Вы правы.
Мелкий благодарю.)

 

Powered by ExBB FM 1.0 RC1