IT박스

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

itboxs 2020. 11. 23. 07:55
반응형

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


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 = preg_replace('/[^\da-z]/i', '', $string);

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

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

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

반응형