За последние 24 часа нас посетили 17884 программиста и 1642 робота. Сейчас ищут 1233 программиста ...

Помогите с выражением! Запарился!!!!

Тема в разделе "Регулярные выражения", создана пользователем Mark32, 11 ноя 2008.

  1. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    Скинул - ответа нет.

    А вопрос важен.

    preg_match_all работает как preg_match.... точно также не вытягивает все данные, а только последнюю.... проповал пройтись циклом:

    for ($i=0; $i< count($matches[0]); $i++) {... итд.

    ничего - он будто видит только данную, которая последняя в таблице, а других нет.

    Что делаю не так?
     
  2. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    preg_match_all('#F3F3F3.+</tr>#Usi', $content, $matches);
    foreach ($matches[0] as $tr) {
    preg_match('#<strong><a.+>(.+)</a></strong>#Usi',$tr,$price);
    print_r($price);
    }
     
  3. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    АХИРЕТЬ! Спасибо большое! Очень коротко и невероятно хитро.
    Только почему-то в Array ( [0] => 2,083 [1] => 2,083 ) получается по два значения - где [0] => 2,083 значение со ссылкой, а [1] => 2,083 - без. Как сделать чтобы было одно значение - только [1] => 2,083 (без ссылки - так даже скорость обработки повысится)
    PS Frozen, спасибо ещё раз!
     
  4. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    никак
     
  5. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    есть урл /folder/folder2/folder3/

    подскажите регулярку чтобы вынуть текст после предпоследнего слеша, т.е в данном случае вынуть текст "folder3"

    способ сунуть всё это в массив и потом $massive=$massive[count($massive)-2]; не подходит в данном случае
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?php
    2.  
    3. if(preg_match('/([a-z0-9,._-]+)\/?$/si', '/folder/folder2/folder3/', $last)) {
    4.     $last = $last[1];
    5. } else $last = null;
    6.  
    7. ?>
     
  7. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    Apple
    СПАСИБО, РАБОТАЕТ!!!!!