在数字前后添加空格

问题描述 投票:1回答:2

我正在尝试在字符串中的任何数字前后添加一个空格。例如,如果我有JS35BX54NV33,我将得到JS 35 BX 54 NV 33

我正在使用此:

preg_replace("/(\\d)([a-z])/i", "$1 $2", $mystring)

但是它只会在每个数字之后添加空格。

感谢您的帮助!

php regex preg-replace
2个回答
0
投票

只需尝试一下,

<?php

$re = '/(\d+)/m';
$str = 'JS35BX54NV33';
$subst = ' $1 ';

$result = preg_replace($re, $subst, $str);

echo "The result of the substitution is ".$result;
?>

工作演示: https://3v4l.org/N6rSK

REGEX https://regex101.com/r/buz2AA/1


0
投票

您的问题可以分为两部分:您想在以字母开头的数字串之前或以数字开头的字母之前添加空格。通过这样分割问题,可以避免在以数字开头(或结尾)的字符串的开头(或结尾)添加多余空格的问题:

$str = 'JS35BX54NV33';
$str = preg_replace('/((?<=[a-z])(?:\d+)|(?<=\d)(?:[a-z]))/i', ' $1', $str);
echo $str;

输出:

JS 35 BX 54 NV 33

Demo on 3v4l.org

© www.soinside.com 2019 - 2024. All rights reserved.