2016-01-12 86 views
0

我有一個字符串:PHP:添加空間的字符串lowercaseUppercase方案包括數字

浴室:2個整體,1個halfBuilt在1990Views上市以來:1,845All時間的觀點:2,00013消費者保存此homeHOA費用: $ 399/moLaundry:在UnitParking:車棚,車庫 - 獨立式,2個空格,314 sqftLast賣:2011年4月

我試圖讓上面的字符串更具可讀性 - 所以如果你注意到新信息之間沒有空格。我有大膽的上述領域。我注意到的是,它以小寫字母結束,然後新信息以大寫字母開頭。

例如:halfBuilt1,845All等。所以我的想法是讓它們之間增加空間。那麼我們如何在PHP中做這個,也許正則表達式呢?謝謝!

+0

你想要空間的場景是什麼?小寫字母是大寫字母還是數字旁邊的字母?也許......'([a-z \ d] +)([A-Z])'? '$ 1 $ 2'。 – chris85

+0

最好的將是所有場景 – Knide

+1

我們可以將此回滾以查看粗體類型嗎? – sln

回答

1

好像要破的時候字母/數字碰上一個大寫字母。如果是這種情況下,這項工作:

/([a-z\d]+)([A-Z])/ 

正則表達式101演示:https://regex101.com/r/wV8eI6/1

PHP用法:

$string = "Baths: 2 full, 1 **halfBuilt in 1990Views** since listing: **1,845All time views**: 2,00013 shoppers saved this **homeHOA Fee:** $399/moLaundry: **In UnitParking:** Carport, Garage - Detached, 2 spaces, **314 sqftLast** sold: Apr 2011"; 
$regex = '/([a-z\d]+)([A-Z])/'; 
echo preg_replace($regex, '$1 $2', $string); 

輸出:

浴室:2個整體,1 一半建於1990年意見自上市以來:1,845所有時間觀點:2,00013消費者保存此家社區管理費: $ 399 /月洗衣房:在單位停車場:車棚,車庫 - 獨立式,2個空格,314平方英尺最後賣:2011年4月

PHP演示:https://eval.in/501264

+0

如果我想添加換行符/換行符而不是空格,該怎麼辦? – Knide

+0

使用'\ n'代替空格;或者如果在瀏覽器中'
'。例如''$ 1 \ n $ 2''或$'1
$ 2'' – chris85

0

這應該這樣做:

$string = preg_replace("/([a-z0-9])([A-Z])/", "$1 $2", $string); 

echo $string; 
// => "Baths: 2 full, 1 half Built in 1990 Views since listing: 1,845 All time views: 2,00013 shoppers saved this home HOA Fee: $399/mo Laundry: In Unit Parking: Carport, Garage - Detached, 2 spaces, 314 sqft Last sold: Apr 2011"