PHP:在包含数字的lowercaseUppercase场景中为字符串添加空格


PHP: Adding space to a string with lowercaseUppercase scenario including numbers

我有一个字符串:

浴室:2个满,1个一半1990年建成浏览量自上市以来:1845所有时间浏览量200013购物者节省了这个家HOA费用:399美元/月洗衣:单元内停车场:停车场,车库-独立式,2个车位,314平方英尺最后一次售出时间:2011年4月

我正在努力使上面的字符串更可读——所以如果你注意到新信息之间没有空格的话。我对上述领域进行了大胆的阐述。但我注意到,它以小写字母结尾,然后新信息以大写字母开头。

例如:halfBuilt1,845All等。所以我的想法是在它们之间添加空间,使其可读。那么,我们如何在php和regex中做到这一点呢?谢谢

当字母/数字变成大写字母时,您似乎想要中断。如果是这种情况,这项工作:

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

Regex 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年建造视图自上市以来:1845所有时间视图:200013购物者节省了这个家HOA费用:399美元/月洗衣房:单元内停车场:停车场,车库-独立式,2个车位,314平方英尺最后售出时间:2011年4月

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

这应该做:

$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"