在数字前后添加空格

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

我正在使用这个:

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

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

谢谢你的帮助!


冉冉说
浏览 150回答 2
2回答

阿波罗的战车

使用环视查找您希望在其中注入空格的零宽度位置。不需要捕获组。\d匹配一个数字字符。\D匹配非数字字符。(?<=...)向后看。(?=...)展望未来。代码:(演示)$mystring&nbsp;=&nbsp;'JS35BX54NV33'; var_export(preg_replace('/(?<=\D)(?=\d)|(?<=\d)(?=\D)/',&nbsp;'&nbsp;',&nbsp;$mystring));输出:'JS&nbsp;35&nbsp;BX&nbsp;54&nbsp;NV&nbsp;33'var_export()用于显示没有生成前导或尾随空格。

吃鸡游戏

只需尝试,<?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 。正则表达式 https://regex101.com/r/buz2AA/1
打开App,查看更多内容
随时随地看视频慕课网APP