2011-11-06 3 views
2

PHP에서 나는 2 문자열을 비교해야합니다.사이에 공백을 고려 PHP 문자열 비교

str1="this is    a  string"
str2=" this is a string "

나는 같은 문자열로 STR1과 STR2을 고려하는 것이 좋습니다.

내가 생각할 수있는 방식은 다음과 같습니다.

문자열을 먼저 트림합니다. 먼저 각 문자열의 단어를 추출하고 단어를 비교 한 다음 결과를 얻습니다.

더 나은 방법 즉, bulit-in 기능 또는 다른 것을 비교할 수 있습니까?

답변

5

preg_replace() functiontrim() function 만 사용하십시오. 다음 :

<?php 
$str1 = "this is             a       string"; 
$str2 = " this is a string  "; 
$str1 = preg_replace('/\s+/', ' ', trim($str1)); 
$str2 = preg_replace('/\s+/', ' ', trim($str2)); 
var_dump($str1, $str2); 

가 출력이 동일한 문자열 :

string(16) "this is a string" 
string(16) "this is a string" 

는 증거로 this codepad를 참조하십시오.

+1

Gaaaaaah. +1 하겠지만'''을 정규 표현식의 구분 기호로 사용하는 것을 간과 할 수는 없습니다 ... –

+0

고마워, 나는 그것을 놓쳤다. '' '\ s +' "'문자열은 예를 들어 바꿀 수있다. 원한다면''/ \ s +/''또는''<\s+>'. – Tadeck

+0

@MarcB : 구분 기호가'''에서'/'로 변경되었으므로 지금 upvote 할 수 있습니다.) – Tadeck

2

$str = preg_replace("/ +/"," ",$str);의 문제점은 무엇입니까? 여러 개의 공백을 하나로 접어서 ...

또한 이전 질문에 대한 답변을 수락하십시오.

+1

str2의 주 문자열 앞뒤에 여분의 공간을 처리하지 않겠습니다. 두 문자열을 모두 trim()해야합니다. –

관련 문제