Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > regexp: ...../t0abc3.png -> ...../0abc3.png


Автор: Source 21.9.2009, 22:18
Есть ссылка:

Код

http://img7.imageshost.ru/imgs/090921/927b160f2e/t0abc3.png


При помещении ссылки в соответствующий бб-код форума эта ссылка должна стать:

Код

http://img7.imageshost.ru/imgs/090921/927b160f2e/0abc3.png


Т.е. надо убрать "t" в начале имени файла.
Код


$txt = preg_replace( "#\[url=http:\/\/imageshost.ru/.*?]\[img\](.+?)\/t*(.+?)\[\/img\]\[\/url\]#i", "[img]\\1/\\2[/img]", $txt ); 

не помогает...(((


Автор: motorway 21.9.2009, 23:13
Код

$mystring='http://img7.imageshost.ru/imgs/090921/927b160f2e/t0abc3.png';
$pos = strrpos($mystring, "/");
$mystring{$pos+1}="";
echo $mystring;

Автор: Source 22.9.2009, 00:48
motorway, спасибо, но мне нужна именно регулярка, которую я представил. Дело втом что она учавствуйет в обработке бб-кода link форума. Как вы видите, это выражение выполняет не только замену буквы.
Меня интересует как составить это выражение так чтобы убрать одну букву в полном пути к файлу и почему не работает
"t*" в:

Код

$txt = preg_replace( "#\[url=http:\/\/imageshost.ru/.*?]\[img\](.+?)\/t*(.+?)\[\/img\]\[\/url\]#i", "[img]\\1/\\2[/img]", $txt );

Автор: motorway 22.9.2009, 14:56
Что мешает сначала выполнить необходимые преобразования, а уже потом заменить букву t? Или наоборот.

Автор: Strilo4ka 22.9.2009, 17:45
мне кажеться там квантификаторов замного наставлено вот допустим 
Код


.+?
Код
 что это за бред !!!???



Добавлено через 2 минуты и 38 секунд
Код


.+?


что это за бред не замного квантификаторов случайно!!! мне кажеться их за много ! Такое выражение можно заменить на такое .*

Автор: Strilo4ka 22.9.2009, 18:02
или как то групировать литералы

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)