2012-10-06 18 views

cevap

43

Sen trim() kullanın bunun için regex gerekmez:

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

Bu fonksiyon başında ve str ucundan soyulmuş boşluk olmadan dize döndürür. Bütünlüğü için

+0

Bu nasıl oldu benim için çalışmadı? Hala beyaz bölgelerimi dizelerden sonra görüyorum. Herhangi bir ipucu? Kimse ? – ihue

+0

Belki de gerçekten beyaz boşluklar değiller. Bu sorunu Office Word'den gelen metinlerle karşılaştırdım. –

5

(bu soru regex etiketlendiği gibi), burada regex bir trim() reimplementation geçerli: daha hiç Yukarıdaki iki çözüm benim için çalıştı Nedense

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

, bu yüzden bu çözüm geldi.

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

Bunun işe yarayabildiğini, özyineleme yükünün aşırı derecede yavaş ve verimsiz olduğunu fark et. Herhangi bir ipte iyi çalışması gerektiği için trim'in neden işe yaramadığından emin değilim. –

İlgili konular