微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐