За последние 24 часа нас посетили 17975 программистов и 1646 роботов. Сейчас ищут 1652 программиста ...

как выбрать все куски текста кроме подстроки?

Тема в разделе "Регулярные выражения", создана пользователем D_Pavel, 19 фев 2014.

  1. D_Pavel

    D_Pavel Новичок

    С нами с:
    19 фев 2014
    Сообщения:
    5
    Симпатии:
    0
    как выбрать все куски текста кроме подстроки например "blbla"?

    например, текст: "_ыв_blbla_к_мв_blbla_аыыв_blbla"
    Нужно получить: "_ыв_", "_к_мв_", "_аыыв_"
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. $str='_ыв_blbla_к_мв_blbla_аыыв_blbla';
    2. echo str_replace('blbla','',$str); 
    Или чего?
     
  3. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Код (PHP):
    1. <?php
    2. $text = '_ыв_blbla_к_мв_blbla_аыыв_blbla';
    3. $delim = 'blbla';
    4. $frases = explode($delim, $text);//в массиве фразы 
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    А понял...
    Или:
    Код (PHP):
    1. $matches=array();
    2. $string='_ыв_blbla_к_мв_blbla_аыыв_blbla';
    3. preg_match_all('/[^blbla]+/',$string,$matches);
    4. echo'<pre>';
    5. print_r($matches[0]);
     
  5. D_Pavel

    D_Pavel Новичок

    С нами с:
    19 фев 2014
    Сообщения:
    5
    Симпатии:
    0
    [^blbla] - это посимвольное отрицание, а не целиком выражение.

    Подскажите почему это выражение не работает?
    Код (Text):
    1. $text = "начало текста[url=url 1]ссылка 1[/url]середина текста[url=url 2]ссылка 2[/url]конец текста";
    2. preg_replace_callback( "#^|\[url=.*?\].*?\[/url\](.+?)\[url=.*?\].*?\[/url\]|$#",
    3.     function ($matches) { echo "<pre>"; print_r ($matches); echo "</pre>"; },
    4.     $text );
    Выдает:
    Код (Text):
    1. Array
    2. (
    3.     [0] =>
    4. )
    5.  
    6. Array
    7. (
    8.     [0] => [url=url 1]ссылка 1[/url]середина текста[url=url 2]ссылка 2[/url]
    9.     [1] => середина текста
    10. )
    11.  
    12. Array
    13. (
    14.     [0] =>
    15. )
    А начало и конец текста не захватывает почему то.
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Странный вы человек...
    Написать просто текст, ради получить регулярку :D
    А потом показать собственно, то, что вы в общем хотите... ДУРНО выглядит, не так ли?
    Что - же вы сразу не сказали? и не показали, то, что вы хотите собственно?
    Секреты, тайны?)
     
  7. D_Pavel

    D_Pavel Новичок

    С нами с:
    19 фев 2014
    Сообщения:
    5
    Симпатии:
    0
    Чтобы упростить вам понимание задачи. В топике то же самое, только более коротко.
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Такое четкое понятие, дали, куда бы деться ;) Что просто набор букв, а потом оказалось что нужно совсем, совсем другое...
    Вы в своем уме? Порой мне кажется суда приходят извращенцы :F
     
  9. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    нифига не тоже самое. потому вам и неподсказывают. хотите одно а спрашиваете про совсем другое

    итак:
    - у вас появилась задача: спарсить все что лежит Вне BB тегов
    - вы совершенно непонятно почему сформулировали задачу как "как выбрать все куски текста кроме подстроки "blbla"
    - вам вполне адекватно дали решение этой конкретной задачи.
    - вы щас пытаетесь выставить всех тут дураками, и убедить что парсить BB теги(разные, одинарные, двойные, вложенные) - это одно и тоже что Заменить все кроме подстроки.
    - уровень сложности и направления решений этих задач совершенно несовпадают.
     
  10. D_Pavel

    D_Pavel Новичок

    С нами с:
    19 фев 2014
    Сообщения:
    5
    Симпатии:
    0
    Всем спасибо. Решение почти найдено. Осталось только подкорректировать немного. http://govnoforum.ru/?k=171

    Добавлено спустя 5 минут 47 секунд:
    Не правда. Я сформулировал задачу иначе:
    Не учитывая мою формулировку задачи.
    Не правда. Мне не нужно парсить теги. Мне нужно найти наоборот все КРОМЕ тегов.
    Your понял что мне нужно, но ошибся в регулярном выражении.
     
  11. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    вам уже дали решения для любых вариантов. и даже на других форумах. что вам еще нужно?
     
  12. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    :D
    Пишет одно нужно мол получить:
    А в итоге пишет, что у него получилось: ПФ!
    ЧЕЛОВЕК ЗАГАДКА! =)
    С такими котигорически связываться нельзя), а то с кем поведешься тому и наберешься))
     
  13. D_Pavel

    D_Pavel Новичок

    С нами с:
    19 фев 2014
    Сообщения:
    5
    Симпатии:
    0
    правильно так:
    Мне больше ничего не нужно, решение найдено.

    Что именно не понятно?