За последние 24 часа нас посетили 17883 программиста и 1286 роботов. Сейчас ищут 1409 программистов ...

preg_replace: Как исключить из поиска строка?

Тема в разделе "Регулярные выражения", создана пользователем solaris, 22 окт 2007.

  1. solaris

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

    С нами с:
    19 окт 2007
    Сообщения:
    6
    Симпатии:
    0
    То есть допустим есть у нас строка:
    dasdasd adasd {123} TEXT1 {/123} dasdasd adasdas adasdas asdas {123} TEXT2 {/123} dsad ads adas

    так вот надо исключить из текста все что находится между {123} и {/123}

    делал так:

    PHP:
    1. preg_replace("/({123})(.*)({/123})/","",$str);
    естественно у меня удаляется вся строка:
    {123} TEXT1 {/123} dasdasd adasdas adasdas asdas {123} TEXT2 {/123}
    а надо чтобы только {123} TEXT1 {/123} и {123} TEXT2 {/123}

    Понятно вместо (.*) ,мне нужно вставить: "все что угодно кроме {/123}"... но как это сделать я увы не знаю :( . Один символ исключить то легко... но как исключить из поиска строку?
     
  2. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
  3. solaris

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

    С нами с:
    19 окт 2007
    Сообщения:
    6
    Симпатии:
    0
    От души :))))
    Пасиб .. Чуть голову не сломал :(((
    Все - невнимательное чтение доки........
     
  4. solaris

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

    С нами с:
    19 окт 2007
    Сообщения:
    6
    Симпатии:
    0
    народ помогите хоть кто-нить упыхался уже :((((((.... че за жмень такая?:

    есть функция:

    PHP:
    1. function getLL($str,$site)
    2. {
    3. $str=removeScripts($str);
    4. preg_match_all("/<[aA] (.[\s]*)?href=([\"|']*)(http:\/\/)(www\.)?".$site."(.*?)<\/[aA]>/i",$str,$ar);
    5. return $ar[0];
    6. }




    в чем прикол, создаю файл test.php пишу туда эту функцию и вызываю её...все отрабатывает на ура....
    Тады беру эту функцию, выделяю, нажимаю ctrl+c открываю свой мега проект вставляю туда нажава ctrl+v.
    запускаю свой проект пишет:

    Warning: preg_match_all(): Unknown modifier '/' in /soft/server/www/linkan/function_check.php on line 111


    И че этой падле надо?... у мя сщас голова лопнит. функция одна и таже, а вразных файлах ведет себя по-разному :(((((((((
     
  5. Inakrin

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

    С нами с:
    26 авг 2007
    Сообщения:
    32
    Симпатии:
    0
    Попробуй ограничители регулярного выражения сменить. На @, например.
    У меня на локалхосте работает...
     
  6. solaris

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

    С нами с:
    19 окт 2007
    Сообщения:
    6
    Симпатии:
    0
    народ, помогите плиз.... совсем уже замучился уже, помогите выражение составить для получения все х ссылок с html страницы.... не могу уже. блин. только сделаю, так попадается ж какая-нить страница, на которрой ссылки выпадают из моего правила... плиз...оч хотца получать все ссылки со страницы, вот начем остановился:

    Код (Text):
    1. function getLL($str,$site) //$site это урл ссылки на который надо искать, $str собственно страница
    2. {
    3. $site=ParseURL($site,'dom');    //Получаем из url доменное имя
    4. $site=trim($site);                   //Удаляем пробелы из полученного имени
    5. $str=removeScripts($str);       //Удаляем из страницы все, что стоит в <script></script>,<noindex></noindex>,<nofollow>
    6. preg_match_all("/<[aA] (.*[\s])?href=([\"|']*)(http:\/\/)(www\.)?".$site."(.*?)([\n]?)<\/[aA]>/i",$str,$ar); //Проблема :((((
    7. return $ar[0];                     //возращаем массив ссылок
    8. }
    (в данный момент столкнулся сос страницей где в тексте ссылки стоит дохренище \n , естественно ссылки не получил :((( )
    Плиз, люди, помогите, спасите мой моск :((((((
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Код (Text):
    1. /.../is