Удалить все, кроме допустимых символов - PullRequest
7 голосов
/ 17 августа 2010

Допустимые символы включают алфавит (abcd ..), цифры (0123456789), пробелы, 'и ".

Мне нужно удалить любые другие символы, кроме этих, из строки в PHP.

Спасибо:)

Ответы [ 2 ]

26 голосов
/ 17 августа 2010

Вы можете сделать это:

$str = preg_replace('/[^a-z0-9 "\']/', '', $str);

Здесь класс символов [^a-z0-9 "'] будет соответствовать любому символу, кроме перечисленных (обратите внимание на инвертирование ^ в начале класса символов), которые затем заменяются пустой строкой.

1 голос
/ 17 августа 2010

Ответ Гамбо является правильным для вашей спецификации.Но если ваша «спецификация» является только «символической», то, что вам в конечном итоге понадобится, может выглядеть следующим образом:

$str = preg_replace('{ [^ \w \s \' " ] }x', '', $str );

[^ ]: отрицательный класс символов (все , за исключением этих внутри)

\w: буквенно-цифровые (буквы и цифры)

\s: пробел

\': '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...