2012-07-02 6 views
1

가능하면 정규 표현식을 사용하지 않는 것이 좋습니다.하지만 20 자 정도의 문자 목록이 있으면 문자열을 제거해야합니까?PHP 문자열 교체 성능

비용

$string = "..."; 

$a = array('a', '1', '!' ...); 

foreach($a as $char){ 
    $string = str_replace($char, '', $string); 

} 

같은 것을 할 효과적 일 것인가 아니면

$string = preg_replace('#[a1!...]#', '', $string); 

감사합니다 정규 표현식으로가는 것이 좋을 것입니다!

+2

배열을 루프 할 필요가 없습니다. $ string = str_replace ($ a, '', $ string) – redshark1802

+0

@ redshark1802에 올바른 답이 있습니다. – Narf

+2

이것에 대한 답과 거의 모든 성능 질문은 항상 변함없이 테스트 해보십시오! – Corbin

답변

0

처음에 str_replace() 바늘과 건초 더미를위한 배열을 지원하므로 루프를 통해 실행하는 것은 단지 여분의 프로세스입니다. 또한 정규식 대 문자열 대 문자열로 답할 것입니다. 거의 모든 경우에 문자열을 문자열로 이동합니다. 정규 표현식은 거짓 긍정과 부정적인 긍정을 줄 수 있습니다. 제대로 공식화되지 않으면 매우 빨리 좌절 할 수 있습니다. 그것이 정규식을 사용하면 regex는 주어진 규칙과 일치하거나 일치하지 않아야하므로 더 많은 프로세스를 추가합니다. 문자열과 문자열이 일치하면 일치합니다.

하지만이 문제에 대한 제 의견입니다.