Подтвердить что ты не робот

Удалите все не буквенно-цифровые символы, используя preg_replace

Как удалить все не буквенно-цифровые символы из строки в PHP?

Это код, который я использую в настоящее время:

$url = preg_replace('/\s+/', '', $string);

Он заменяет только пробелы.

4b9b3361

Ответ 1

$url = preg_replace('/[^\da-z]/i', '', $string);

Ответ 2

Сначала возьмите это, как бы я это сделал

$str = '[email protected]#[email protected]#$^@#$Hello%#$';

$outcome = preg_replace("/[^a-zA-Z0-9]/", "", $str);

var_dump($outcome);
//string(11) "qwertyHello"

Надеюсь, это поможет!

Ответ 3

Не уверен, почему никто другой не предложил это, но это, кажется, самое простое регулярное выражение:

preg_replace("/\W|_/", "", $string)

Вы также можете увидеть это в действии: http://phpfiddle.org/lite/code/0sg-314

Ответ 4

preg_replace('/[\s\W]+/', '', $string)

Кажется, что работает, на самом деле пример был в документации PHP на preg_replace

Ответ 5

$alpha = '0-9a-z'; // what to KEEP
$regex = sprintf('~[^%s]++~i', preg_quote($alpha, '~')); // case insensitive

$string = preg_replace($regex, '', $string);

Ответ 6

Вы можете использовать

$url = preg_replace('/[^\da-z]/i', '', $string);

Вы можете использовать символы Unicode,

$url = preg_replace("/[^[:alnum:][:space:]]/u", '', $string);