Регулярное выражение.. Помогите плз.

Тема в разделе "PHP", создана пользователем AlexVinn, 1 июн 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. AlexVinn

    AlexVinn Создатель

    Регистр.:
    23 апр 2008
    Сообщения:
    29
    Симпатии:
    0
    <h3><a href="http://xxx.xxx.xxx/xxx/xxx" _snid="2248152:Topic:695966">Text1</a></h3>
    вот такая строка... признак в ней _snid... как вытащить урл который перед _snid ?? Заранее спасибо...
     
  2. jo0o00nyy

    jo0o00nyy Постоялец

    Регистр.:
    12 май 2010
    Сообщения:
    65
    Симпатии:
    27
    Попробуй так
    PHP:
    $url $snid null;
    if (
    preg_match('/<a [^>]*href=\"([^\"]+)\"[^>]*_snid=\"([^\"]+)\"[^>]*>/i'$str$match))
    {
     
    $url $match[1];
     
    $snid $match[2];
    }
    Вместо _snid=\"([^\"]+)\" можно написать условие для фильтра выборки
     
  3. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Если в лом с регулярками разбираться.
    http://ru2.php.net/manual/en/book.dom.php
     
  4. AlexVinn

    AlexVinn Создатель

    Регистр.:
    23 апр 2008
    Сообщения:
    29
    Симпатии:
    0
    еще плз. помогите...
    есть такая строка - <title>ХХХ ХХХХХХХ ХХ ХХХХХХХХ, ХХХХХХ ХХХХХХ ХХХХХ ХХХХХ ХХХ </title>
    как из нее выдрать четвертое слово слева, которое перед запятой ??? спс...
     
  5. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    737
    Симпатии:
    263
    PHP:
    preg_match('#<title>(.*?),#i',$str,$arr);
    echo 
    $arr[1];
     
  6. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    модифицируем чтобы не возвращала вообще все что слева от запятой:

    PHP:
    preg_match('#<title>[^,]+\s([^,]+),#i',$str,$arr);
    echo 
    $arr[1];
     
Статус темы:
Закрыта.