За последние 24 часа нас посетили 20115 программистов и 1670 роботов. Сейчас ищут 1847 программистов ...

Помогите составить регулярное выражение

Тема в разделе "Регулярные выражения", создана пользователем darkgod, 14 мар 2010.

  1. darkgod

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

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    есть урл например
    uploads/images/files/123/name.jpg

    нужно составить регулярное выражение, и получать в итоге урлы такого вида:

    uploads/images/files/123/folder/name.jpg

    причем - директория 123 всегда разная, а вот добавляемая folder всегда одинакового названия, ну и соответственно имя и расширение файла тоже могут быть разными
     
  2. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    s{[^/]+$}{folder/$&}
    или
    s{(uploads/images/files/[^/]+)(.*)}{$1/folder$2}
     
  3. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    PHP:
    1. <?php
    2.   ini_set('display_errors',1);
    3.   error_reporting(E_ALL);
    4.  
    5.  
    6. $m='uploads/images/files/123/name.jpg  uploads/images/files/546/day.doc';
    7. // хотим  uploads/images/files/123/folder/name.jpg
    8.    
    9. $poisk='/(uploads\/images\/files\/[^\/]{1,20}\/)([^\s]*)/si';
    10.  
    11.  
    12.    
    13.  preg_match_all($poisk,$m,$matches);
    14.  
    15.  
    16.    echo $matches[1][0];
    17.    echo 'folder/';
    18.    echo $matches[2][0];
    19.    echo '<br>';
    20.    echo $matches[1][1];
    21.    echo 'folder/';
    22.    echo $matches[2][1];
    23.  
    24.  
    25.  
    26.   ?>