Проблема с регуляркой

Discussion in 'PHP' started by попугай, 14 Sep 2008.

  1. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,515
    Likes Received:
    400
    Reputations:
    196
    Делаю скриптог , который должен искать строки вида

    <a href="/слово которое не меняется/изменяемое слово/"> в тексте и потом обрабатывать их...

    PHP:
    $reg "/<a href=\/слово которе не меняется\/\S+\/>/si";
    $txt "Техта много"
    preg_match_all($reg$text$mach);
    print_r($mach);

    Выводит только 8 слов первых и не больше... в чом может быть дело?
     
    #1 попугай, 14 Sep 2008
    Last edited: 14 Sep 2008
  2. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,515
    Likes Received:
    400
    Reputations:
    196
    все равно больше 8 не находит.. + лишнее еще захватывает..(ну это пох - исправить можно, а вот почему дальше не ищет -не могу понять)
     
  3. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,515
    Likes Received:
    400
    Reputations:
    196
    Сделал таким образом

    PHP:
    $reg "#\/слово\/\S+\"#s";
    $txt "Техта много";  
    preg_match_all($reg$txt$mach); 
    print_r($mach); 
    Работает... ))


    Остался другой вопрос - как сделать так, чтоб не собирались повторно совпадения которые уже есть ?
    Модификатор какойто может?
     
  4. diehard

    diehard Elder - Старейшина

    Joined:
    30 Sep 2007
    Messages:
    442
    Likes Received:
    266
    Reputations:
    15
    чисть массив $matches[...] через array_unique()
     
  5. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,515
    Likes Received:
    400
    Reputations:
    196
    ну это я тоже знаю, просто я думал может есть способ прям из функции preg_match_all() ..