Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP preg_replace 함수로 문자열에서 구두점 제거하는 방법

PHP의 preg_replace 함수를 활용하면 문자열 안에서 원하지 않는 구두점(특수문자)을 간편하게 찾아 제거할 수 있습니다. 정규 표현식 패턴을 어떻게 작성하느냐에 따라 영문자와 숫자만 남기거나, 영문자만 남기는 등 원하는 형태로 문자열을 자유롭게 정리할 수 있습니다.

영문자와 숫자만 유지하기

아래 예제는 알파벳과 숫자를 제외한 모든 문자를 공백으로 대체합니다. 패턴 끝에 붙은 i 플래그는 대소문자를 구분하지 않도록 만들어 줍니다.

<?php
$s = "Hello, my name is Bobby !? I am 8 years !";
print_r(preg_replace('/[^a-z0-9]+/i', ' ', $s));
?>

출력 결과

실행하면 다음과 같은 결과가 출력됩니다.

Hello my name is Bobby I am 8 years

영문자만 유지하기

숫자까지 함께 제거하고 알파벳만 남기고 싶다면, 아래와 같이 패턴에서 숫자 범위를 제외하면 됩니다.

<?php
$s = "Hello, my name is Bobby !? I am 8 years !";
print_r(preg_replace('/[^a-z]+/i', ' ', $s));
?>

출력 결과

실행하면 다음과 같은 결과가 출력됩니다.

Hello my name is Bobby I am years

영문자, 숫자, 밑줄(_) 유지하기

정규 표현식에서 \w는 알파벳, 숫자, 밑줄(_)을 모두 포함하는 메타 문자입니다. 이를 활용하면 세 가지 요소를 한 번에 유지할 수 있습니다.

<?php
$s = "Hello, my name is Bobby !? I am 8 years !";
print_r(preg_replace('/[^\w]+/', ' ', $s));
?>

출력 결과

실행하면 다음과 같은 결과가 출력됩니다.

Hello my name is Bobby I am 8 years