Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Замена с исключением (https://javascript.ru/forum/server/32459-zamena-s-isklyucheniem.html)

Freakmeister 16.10.2012 22:07

Замена с исключением
 
Реально ли составить регулярку, чтобы в тексте все \n заменялись на <br>, но только не внутри тега [html][/html] ? У меня в новостях реализован автоматический перенос строки, а недавно я стал использовать бб-тег [html] и внутри него проявляются косяки - например, весь html-код приходится писать в одну строку, иначе в коде появляется лишний <br>.

Freakmeister 17.10.2012 01:05

Пробовал заменить \n внутри тега [html][/html] на временную строчку: lRkN5a1Bk0QHC32hWWsp - почти сработало. Но моя регулярка заменяет только первый попавшийся \n, а не все. Как сделать чтобы заменяла все - я не знаю.

<?php
$text = preg_replace("'\[html\](.*?)\n(.*?)\[\/h tml\]'is", "\[html\]\\1lRkN5a1Bk0QHC32hWWsp\\2\[\/html\] ", $text);
$text = str_ireplace("\n", "<br>", $text);
$text = str_replace("lRkN5a1Bk0QHC32hWWsp", "\n", $text);
?>

Nekromancer 17.10.2012 01:45

Freakmeister,
Копать в стороны флага "g".


Часовой пояс GMT +3, время: 05:05.