我正在尝试在字符串中的任何数字前后添加一个空格。例如,如果我有JS35BX54NV33,我将得到JS 35 BX 54 NV 33
我正在使用此:
preg_replace("/(\\d)([a-z])/i", "$1 $2", $mystring)
但是它只会在每个数字之后添加空格。
感谢您的帮助!
只需尝试一下,
<?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。
您的问题可以分为两部分:您想在以字母开头的数字串之前或以数字开头的字母之前添加空格。通过这样分割问题,可以避免在以数字开头(或结尾)的字符串的开头(或结尾)添加多余空格的问题:
$str = 'JS35BX54NV33';
$str = preg_replace('/((?<=[a-z])(?:\d+)|(?<=\d)(?:[a-z]))/i', ' $1', $str);
echo $str;
输出:
JS 35 BX 54 NV 33