2016-01-12 45 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"