Странное поведение preg_replace

  • Автор темы Автор темы 2People
  • Дата начала Дата начала

2People

Новичок
Странное поведение preg_replace

Мне кажется что это странное поведение функции
PHP:
preg_replace ("/\W\S/", "", $name);
Попробовал потестировать работу, и случайно набрал строку:
Код:
$$$%#$%

В результате остаётся:
Код:
%


В других вариантах работает как я и ожидал, т.е. остаются только буквы и пробел.
 
то что ты написал означает по русски:
заменить НЕ "word" character ЗА которым идет НЕ whitespace на пустое место
и действительно у тебя идет 3 пары которые этом условию удовлетворяют
а один символ остается
 
Это не странное поведение: в регулярном выражении последовательность из двух символов, а в строке нечётное количество знаков
 
Мне кажется, что надо написать так:
PHP:
$name=preg_replace ("/[\W\S]{*}/", "", $name);
Но это не работает.
Скажите пожалуйста, как правильно написать то, что мне надо.
 
Автор оригинала: neko
/[^\w]/
только ещё чтобы пробелы не резал и резал цифры. А какраз это сделать у меня не получается.

(мне надо, как я написал в первом посте, оставить буквы и пробел, остальное удалять)
 
Сверху