За последние 24 часа нас посетили 14965 программистов и 1764 робота. Сейчас ищут 1543 программиста ...

вырезать от и до

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

  1. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Добрый день подскажите как вырезать из строки
    1) ВСЕ от начала и до Jump to:
    ....потом идеть тыс строк нужного кода его оставляем...
    и в конце файла .
    2) удалить все с
    Код (PHP):
    1. <div style="float:right;">[url="#top"]Back to top[/url]</div> 
    ДО конца!

    помогите.....
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Код (PHP):
    1. $preg = '/('. preg_quote('Jump to') .'(.*?))'. preg_quote('<div style="float:right;">[url="#top"]Back to top[/url]</div>') .'/isu';
    2. preg_match($preg, $str, $data); 
    сделаешь var_dump($data) посмотреть что где в массиве и заменишь на что тебе надо.
     
  3. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    выдает ошибку
    Код (PHP):
    1. Warning: preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Unknown modifier 'a' 
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Код (PHP):
    1. $jump = preg_quote('Jump to', '/');
    2. $back = preg_quote('<div style="float:right;">[url="#top"]Back to top[/url]</div>', '/');
    3. $preg = "/($jump(.*?))$back/isu";
     
  5. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    чето не выходить!!!!! я уже с бубном почти все решил! а вот как с
    Код (PHP):
    1. <div style="float:right;">[url="#top"]Back to top[/url]</div> 
    и до конца строки не как не выходит
    пробую так
    Код (PHP):
    1. $html = preg_replace("!<div style="float:right;">[url="#top"]Back to top[/url]</div>(.*?)</html>:!si","",$html); 
    удаляет все
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Бла, тебя не надо ни чего заменять, тебе надо выцепить кусок текста который должен остаться и все.
    при использовании
    Код (PHP):
    1. preg_match($preg, $str, $data); 
    этот кусок окажется где то в массиве $data

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  7. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    делаю как ты говоришь! emtpy array

    Добавлено спустя 10 минут 58 секунд:
    проблема в том что БЕК ТУ ТОП не один а надо до последнего!
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Код (PHP):
    1. $text = 'first Jump this text Back bla bla bla...';
    2.  
    3. $jump = preg_quote('Jump', '/');
    4. $back = preg_quote('Back', '/');
    5. $preg = "/($jump(.*?))$back/isu";
    6.  
    7. $data = array();
    8.  
    9. preg_match($preg, $text, $data);
    10. $text = $data[1];
    11. var_dump( $text );
    мне надо получить текст который начинается С Jump и идет ДО Back и записать его в $text, все пашет.

    Добавлено спустя 1 минуту 7 секунд:
    Код (PHP):
    1. $text = 'first Jump to this text <div style="float:right;">[url="#top"]Back to top[/url]</div> bla bla bla...';
    2.  
    3. $jump = preg_quote('Jump to', '/');
    4. $back = preg_quote('<div style="float:right;">[url="#top"]Back to top[/url]</div>', '/');
    5. $preg = "/($jump(.*?))$back/isu";
    6.  
    7. $data = array();
    8.  
    9. preg_match($preg, $text, $data);
    10. $text = $data[1];
    11. var_dump( $text ); 
    тоже работает.
     
  9. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    да сори запустилось! но проблема

    код.....
    jump to:
    ..................................вырезать
    код...
    back to top
    код...
    back to top
    код...
    back to top
    код...
    ------------------------------------
    back to top

    код
     
  10. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    т.е. до последнего "back to top"?
     
  11. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
  12. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    надо убрать вопросительный знак, он означает до первого вхождения, а без него до последнего, так называемый жадный поиск:
    Код (PHP):
    1. $preg = "/($jump(.*))$back/isu"; 
     
  13. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
  14. vasyaasd061

    vasyaasd061 Guest

    А как сделать какое совпадение? Нужно взять 2-ое значение owner_id, как это реализовать?
    к примеру есть
    Код (PHP):
    1. [color=#0000BF]<owner_id>230517071</owner_id>
    2.    <date>1454838656</date>
    3.    <post_type>post</post_type>
    4.    <text/>
    5.    <copy_history list="true">
    6.     <post>
    7.      <id>9397</id>
    8.      <owner_id>-70856490</owner_id>[/color]