2016-01-18 102 views
1

我將刪除首字母之間的空格,並保留初始和任何單詞之間的空格。如何使用preg_replace刪除字符串中的空格

我想得到這個結果。 A.J.P. A.J.P.簡B.V.

反而我得到這個結果 A.J. P.簡BV

$string = "A.J. P. Jane B. V."; 

$string = preg_replace('/\.\s\[A-z]{1}\./', '.', $string); 

echo $string; 
+0

的[要去除在PHP可變內空格]可能的複製(http://stackoverflow.com/questions/1279774/to-strip-whitespaces-inside-a-variable-in-php) –

回答

2

使用此規則\.\s([A-Z]{1})\.\.\s([A-Z])\.沒有明確的限制 匹配[dot][space][letter][dot]
替換.$1.[dot][letter][dot]

$string = preg_replace('#\.\s([A-Z]{1})\.#', '.$1.', $string); 

echo $string; 

將ou tput的

A.J.P. Jane B.V. 
+0

嗨,謝謝。只有一個問題。之間有一個空間。 P. – user2635901

+0

我得到的輸出就像我在答案中提到的那樣,確保代碼是一樣的 –

+0

對不起,你是正確的,我正在嘗試$ string =「A.J.P.Jane B.V.」;所以我有另一個方面需要解決。 – user2635901

0

試試這個,

$string = preg_replace('/\s+/', '', $string); 
+0

這不是他想要的結果! –

+1

刪除了所有空間。它應該只刪除一些。結果應該是A.J.P. Jane B.V. – user2635901

+0

查看Alex Andreis的回答 –