Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Тексты > регулярка... |
Автор: alligator 8.10.2006, 01:17 | ||||
Кусок страницы От сюда нуна получить цифру 9 она в <li value=9> а цифра эта может стоять у любого другого сайта тут на примере показан http://www.somesite.com/ в общем нужно найти эту цифру для определенного сайта.....
я делал так.... не получаеться сделать.... подскажите где ошибка...
|
Автор: BobiKK 8.10.2006, 01:41 |
Эхм... Не понял, что надо выдрать? Нельзя ли просто '/<li value=(\d+)>/i' ? |
Автор: Wolf1994 8.10.2006, 01:49 | ||
|
Автор: alligator 8.10.2006, 12:08 |
сайт выберает но значение <li value=> получает неправильно , берет первое значение а нужно для определенного сайта =(( |
Автор: Wolf1994 10.10.2006, 08:27 | ||
|
Автор: alligator 10.10.2006, 20:05 |
я уже сделал свой вариант , но этот мне нравиться больше.... только когда разбирался с регулярами никак не могу понять как работает вот эта часть... (?=[^href]*href=[^>]*somesite.com) |
Автор: Wolf1994 11.10.2006, 04:38 | ||
(?=чему-то) - "послешествующее" утверждение. То есть, захват происходит только в случае если за выражением следует "чему-то". Причём "чему-то" в захват не включается. [^href]* - отрицает присутствие других ссылок в условии, это сделано для того, чтобы получить "value=..." для ближайшей ссылки. Более грамотно было бы использовать два условия, наверное: (?=(?!...)...) - но я пока в этом не силён ![]() Здесь полный FAQ: http://ru.php.net/manual/ru/reference.pcre.pattern.syntax.php |
Автор: alligator 11.10.2006, 14:28 |
хмм я щас потестирую и отпишусь..... |
Автор: alligator 11.10.2006, 18:20 | ||
чета я уже замучался.... preg_match( "/value=\"?([\d\s]+)\"?.*[^href]*href=[^>]*www.sitesome.ru/is", $pos, $res ); такой вариант захватывает все ссылки и получает неверно вариант... ссылку надо искать в таком теге... <a tabindex=\"3\" onclick=\"r(this, \'iweb/path=80.22.82/vars=84=86\');\" href=\"http://www.sitesome.ru/\" target=\"_blank\">х</a> |
Автор: alligator 12.10.2006, 01:45 |
решил вопрос простым способом , если уж не получаеться выбрать , то надо удалить лишнее =) preg_replace форева ) |