2012-10-06 45 views
14

我有兩個詞,當然還有空間,前後有很多空格, 我需要做的就是刪除之前和之後的空格,而不是之間的空格。如何刪除字符串前後的空格?

我怎樣才能刪除它之前和之後的空間?

回答

43

你不需要正則表達式的是,使用trim()

$words = '  my words  '; 
$words = trim($words); 
var_dump($words); 
// string(8) "my words" 

該函數返回空白從一開始就和STR的端部剝離的字符串。

+0

這是怎麼回事?我仍然在絃樂之後看到我的空白處。任何提示?任何人 ? – ihue

+0

也許他們不是真的空白。我遇到了來自Office Word文本的這個問題。 –

5

爲了完整(因爲這個問題被標記regex),這裏是一個trim()重新實現正則表達式:

function preg_trim($subject) { 
    $regex = "/\s*(\.*)\s*/s"; 
    if (preg_match ($regex, $subject, $matches)) { 
     $subject = $matches[1]; 
    } 
    return $subject; 
} 
$words = '  my words  '; 
$words = preg_trim($words); 
var_dump($words); 
// string(8) "my words" 
1

出於某種原因,兩個解決上述didnt爲我工作,所以我想出了這個解決方案。

function cleanSpaces($string) { 
    while(substr($string, 0,1)==" ") 
    { 
     $string = substr($string, 1); 
     cleanSpaces($string); 
    } 
    while(substr($string, -1)==" ") 
    { 
     $string = substr($string, 0, -1); 
     cleanSpaces($string); 
    } 
    return $string; 
} 
+0

請注意,雖然這可能會起作用,但遞歸的開銷會使此過程非常緩慢且效率低下。我不知道爲什麼修剪不適合你,因爲它應該適用於任何字符串。 –