使用PHP和regex,在一组匹配的字符之间插入一个字符

我想在一组匹配的字符之间插入一个字符,使用正则表达式来定义组,使用PHP将字符放在匹配中. Looking here, 我看到它可能需要PHP递归匹配,尽管我想可能有一种更简单的方法.

为了说明,当一个数字旁边有2个或更多字母的组合时,我试图在字符串中插入一个空格.应在字母和数字之间插入空格.示例“AXR900DE3”应返回“AXR 900 DE 3”.

答案是使用preg_split来迭代地分解字符串并沿途插入空格吗?
我已经开始尝试使用下面的preg_replace作为模式2字母后跟一个数字(我还需要使用一个模式,一个数字后跟两个字母),但我需要另一个步骤来插入该匹配之间的空格.

$sku = "AXR900DEF334";
$string = preg_replace('/(?<=[A-Z]{2}[\d])/',' ', $sku);

解决方法:

你不需要做递归.
如果我理解正确,你应该能够这样做:

$sku = "AXR900DEF334";
$string = preg_replace('/((?<=[A-Z]{2})(?=[0-9])|(?<=[0-9])(?=[A-Z]{2}))/',' ', $sku);
echo $string;

OUTPUT

AXR 900 DEF 334

当字母在数字之前和之后,这将匹配.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...