programing

preg_replace를 사용하여 영숫자가 아닌 모든 문자 제거

bestcode 2022. 9. 15. 23:59
반응형

preg_replace를 사용하여 영숫자가 아닌 모든 문자 제거

PHP 문자열에서 영숫자가 아닌 문자를 모두 제거하려면 어떻게 해야 합니까?

현재 사용하고 있는 코드는 다음과 같습니다.

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

공백만 바꿉니다.

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

처음에는 이렇게 할 거야

$str = 'qwerty!@#$@#$^@#$Hello%#$';

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

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

이게 도움이 됐으면 좋겠네요!

왜 아무도 이것을 제안하지 않았는지 모르겠지만, 이것이 가장 간단한 정규식인 것 같다.

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

http://phpfiddle.org/lite/code/0sg-314에서도 동작하고 있습니다.

사용할 수 있습니다.

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

유니코드 문자에 사용할 수 있습니다.

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

정상적으로 동작하고 있는 것 같습니다.실제로 이 예는 preg_replace의 PHP 매뉴얼에 기재되어 있습니다.

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

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

언급URL : https://stackoverflow.com/questions/11321048/remove-all-non-alphanumeric-characters-using-preg-replace

반응형