Снова нужна помощь с регулярным

Статус
В этой теме нельзя размещать новые ответы.

Patrul

Новичок
Снова нужна помощь с регулярным

Есть текст:


Мне нужно заменить все символы на "x", кроме
1) . и ,
2) <br>

С первым условием справиться могу:
$body = preg_replace("/[^\s\.,]/","x","Lesson 1: Вася пошел гулять,<br> а Коля остался дома.");


а вот со вторым - проблемы...
пробовал так: $body = preg_replace("/([^<][^b][^r][^>])/","x","Lesson 1: Вася пошел гулять,<br> а Коля остался дома.");
не работает...

и не знаю как потом два эти условия объединить в одно...
help please...
 

cookie

Новичок
PHP:
$body = preg_replace("/(<br\s?\/?>)|(\.)|(\,)/six","x","Lesson 1: Вася пошел гулять,<br><br> а Коля остался дома.<br/>");
 

Zetruger

ivan.chistyakov.name
как вариант обхода, могу предложить разбить строку на массив по <br>, призвести замену, а потом обратно собрать заново
 

Patrul

Новичок
cookie
не совсем то. мне нужно заменить все КРОМЕ указанного Вами.

-~{}~ 05.09.07 13:06:

Zetruger
Да, у меня сейчас так и работает, но вот пытаюсь ускорить некоторые процессы.
 

Major

Новичок
Держи, пивонер. Тока домашние задания лучше делать самому. Ты вообще кроме форума, книги какие еще читаешь?

PHP:
<?php

$str = "Lesson 1: Вася пошел гулять,<br> а Коля остался дома.";

echo
$str = preg_replace("‡[^\s\.,\Wbr]‡", "x", $str);

?>
или

PHP:
<?php

$str = "Lesson 1: Вася пошел гулять,<br> а Коля остался дома.";

echo
$str = preg_replace("‡[^\.,\Wbr]‡x", "x", $str);

?>
Ответ:
xxxxxx x: xxxx xxxxx xxxxxx,<br> x xxxx xxxxxxx xxxx.
 

Фанат

oncle terrible
Команда форума
Major
иногда лучше жевать, чем говорить.

Patrul
а что - сильно тормозит?
 

Patrul

Новичок
Фaнат
Как сказать, не так, чтоб заметно, конечно, но тем не менее...

Вот тестик провел (на тексте размером 40,2 Кб) (3 раза):

Вариант с занесением в массив, через разбивку по <br>:
Выполнялось 0.0321700572968
Выполнялось 0.0354979038239
Выполнялось 0.0415160655975

Вариант с регулярным выражением:
Выполнялось 4.6968460083E-005
Выполнялось 6.41345977783E-005
Выполнялось 6.69956207275E-005


Major
Спасибо за выражение.
 

Фанат

oncle terrible
Команда форума
очередной, блин, оптимизатор тысячных долей секунды.

все свободны. и аффтар, и мажор с его кривым выражением
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху