Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вырезать (сложное условие)
 
 автор: ronin   (14.11.2007 в 18:40)   письмо автору
 
 

Убрать из строки $file все вхождения %%pic[num]%% где [num] – число от 1 до 100

$file = preg_replace('/([0-9])/', "", $file);  

но как я понял это комманда удаляет все цифры, а как правильно?

   
 
 автор: ddhvvn   (14.11.2007 в 19:16)   письмо автору
 
   для: ronin   (14.11.2007 в 18:40)
 

Не помню нужно ли экранировать знак %, короче так:

<?php
$file 
preg_replace('/%%pic\[[0-9]\]%%/'""$file);
?>

   
 
 автор: ronin   (14.11.2007 в 19:33)   письмо автору
 
   для: ddhvvn   (14.11.2007 в 19:16)
 

спасибо! единственно, что я не понял в принци [0-9] вырезает все цифры, а тут надо от 1 до 100? вообще такая постановка (от 1 -100)вопроса правильна?

   
 
 автор: ddhvvn   (14.11.2007 в 19:45)   письмо автору
 
   для: ronin   (14.11.2007 в 19:33)
 

Еще сделать так...


<?php 
$file 
preg_replace('/%%pic\[[0-9]{1,3}\]%%/'""$file); 
?>


Как сделать чтоб точно от 1 до 100 щас че-т не придумаю :-D

Если додумаюсь - напишу

   
 
 автор: ronin   (14.11.2007 в 19:53)   письмо автору
 
   для: ddhvvn   (14.11.2007 в 19:45)
 

спасибо! прошу помощь зала!

   
 
 автор: kasmanaft   (14.11.2007 в 20:03)   письмо автору
 
   для: ronin   (14.11.2007 в 19:53)
 

Вот так, наверное, можно сделать: /%%pic\[([1-9]\]|[1-9][0-9]\]|100\])%%/

   
 
 автор: ronin   (15.11.2007 в 10:44)   письмо автору
 
   для: kasmanaft   (14.11.2007 в 20:03)
 

Видимо я что то нетак делаю

$string = "%%%%pic gnom 999 100 4 5 3 897 m";
echo "$string<br>";
$pattern = "/%%pic\[([1-9]\]|[1-9][0-9]\]|100\])%%/";
$replacement= "";
echo preg_replace($pattern, $replacement, $string);

ничего не вырезает, ткните меня там где ошибка.

   
 
 автор: kasmanaft   (15.11.2007 в 13:41)   письмо автору
 
   для: ronin   (15.11.2007 в 10:44)
 

А чего он тут должен вырезать? Вы говорили вырезать нужно "%%pic[num]%%".

   
 
 автор: ronin   (15.11.2007 в 15:07)   письмо автору
 
   для: kasmanaft   (15.11.2007 в 13:41)
 

"%%pic[num]%%".
так это остается невырезанным!

   
 
 автор: kasmanaft   (15.11.2007 в 15:32)   письмо автору
 
   для: ronin   (15.11.2007 в 15:07)
 

Дык, оно разве здесь "%%%%pic gnom 999 100 4 5 3 897 m" есть?

Если бы было "%%pic[12]%% gnom 999 100 4 5 3 897 m" - вырезало бы... Разве нет?

   
 
 автор: ronin   (15.11.2007 в 16:35)   письмо автору
 
   для: kasmanaft   (15.11.2007 в 15:32)
 

блин провтыкал... Спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования