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

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

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

 

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

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

тема: тонкость в preg replace. Помогите найти подводный камень
 
 автор: Temnovit   (04.01.2007 в 15:45)   письмо автору
 
 

Вот такая проблема

Регулярное выражение должно удалить из строки все, что находиться между подстроками {IF} и {/IF} и сами эти подстроки. Все удаляеться хорошо, но в ряде случаев просто не работает. Опытным путем, долго долго мучаясь выяснил, что не работает в тех местах, где между {IF} и {/IF} встречаеться символ точки ( . )

Вот выражение:

<?
  preg_replace
('#{IF}([^.]*){/IF}#i'''$str);
?>


Не могу понять где может быть проблема...
Помогите пожалуйста.

   
 
 автор: kasmanaft   (04.01.2007 в 16:18)   письмо автору
 
   для: Temnovit   (04.01.2007 в 15:45)
 

Можно использовать такое рег. выражение:

#{IF}.*?{/IF}#is

   
 
 автор: Temnovit   (04.01.2007 в 17:11)   письмо автору
 
   для: kasmanaft   (04.01.2007 в 16:18)
 

Все работает. Просто здорово.
kasmanaft, спасибо большое.

Если не секрет, в чем же была моя ошибка и почему проблема была именно в точке?

   
 
 автор: kasmanaft   (04.01.2007 в 23:00)   письмо автору
 
   для: Temnovit   (04.01.2007 в 17:11)
 

Ну начнем с того, что в кв. скобках обозначаются возможный символы... если поставить знак ^, то мы получим "не 'возможные_символы' ", отрицание то есть ... Точка здесь, если не ошибаюсь, будет обозначать не любой символ, а именно точку, вот и получилось "не точка"

   
Rambler's Top100
вверх

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