PHP:使用包含数字的lowercaseUppercase方案向字符串添加空格

时间:2016-01-12 17:47:31

标签: php regex

我有一个字符串:

  

Baths:自上市以来已有2个完整,1个半年内建成 1,845所有时间视图:2,00013个购物者已保存此 homeHOA费用: $ 399 /月洗衣店:在UnitParking:车棚,车库 - 独立式,2个车位, 314 sqftLast 已售出:2011年4月

我试图让上面的字符串更具可读性 - 所以如果你注意到新信息之间没有空格。我大胆地提到了上述领域。我注意到的是它以小写字母结尾,然后新信息以大写字母开头。

示例:halfBuilt1,845All等。所以我的想法是让它可读,就是在它们之间添加空间。那么我们如何在PHP和正则表达式中做到这一点?谢谢!

2 个答案:

答案 0 :(得分:1)

当字母/数字碰到大写字母时,您似乎想要破解。如果是这种情况,这项工作:

/([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年以上自上市以来: 1,845所有时间观点:2,00013购物者保存此主页HOA费用:< / strong> $ 399 /月洗衣店:停车位:车库,车库 - 独立式,2个车位, 314 sqft最近已售出:2011年4月

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

答案 1 :(得分: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"