Вырезать из слов типа пи###б###л символы

ShadowSnake

Новичок
Вырезать из слов типа пи###б###л символы

Понимаю что регэкспом, но не могу составить его так чтоб он еще и замену производил...

Пока пытаюсь делать так, но что то не получается...

PHP:
$string=preg_replace("/([А-Яа-яA-Za-z0-9]){0,10}((\.)|(\-)|(\*)|(\+)|(_)|(\#))([А-Яа-яA-Za-z0-9]){0,10}/i","$1$3",$string);
 

white phoenix

Новичок
Если я правильно понял, надо в тексте слова типа 'пи###б###л' превратить в 'пибл'. Да?
 

ShadowSnake

Новичок
Точно, но проводить тотальную замену символов во всей переменной нельзя, так как там могут попасться нужные... Типа #1 - тра-ля-ля
#2 - тра-ля-ля
 

white phoenix

Новичок
Почитай PHP FAQ: Регулярные выражения.
Как вариант:
PHP:
$string = 'Нах## мне без х##, если с х##м до##я.';
function replace_callback($word)
{
 $word = str_replace(array('#','*','_'),'',$word);
 return $word;
}
$result = preg_replace('~[\w\#\*_]{2,}~ixe','replace_callback("$0")',$string);
var_dump($result);
// string(29) "Нах мне без х, если с хм доя."
 
Сверху