我得到了下面的字符串,从解码十六进制字符串的结果,PHP - 删除多余的空格
" g e t s m h "
,但结果应该是,
"get smh"
我相信它可以使用的preg_replace完成,但我不知道正则表达式。好心提醒。谢谢。
我得到了下面的字符串,从解码十六进制字符串的结果,PHP - 删除多余的空格
" g e t s m h "
,但结果应该是,
"get smh"
我相信它可以使用的preg_replace完成,但我不知道正则表达式。好心提醒。谢谢。
尝试以下操作:
\s(?!\s)
而且什么也没有更换。
\s(?!\s)
会匹配每个空格字符(以及换行符和回车符,换页符和制表符,但如果它是单行,这应该不是问题),除非它们后面跟着另一个空格字符,以便在“”( 2个空格),只有第二个空格被替换为空格。
你使用这样的:
$newstring = preg_replace('/\s(?!\s)/', '', $oldstring);
尝试。跳它会工作
$str = " g e t s m h ";
$str = explode(' ', $str);
$str_1 = str_replace(' ', '', $str[0]);
$str_2 = str_replace(' ', '', $str[1]);
echo $str_1.' '.$str_2;
我更喜欢使用preg_replace和更少的代码。不管怎么说,还是要谢谢你。 – sulaiman
如果有人觉得这是十六进制转换为字符串,而无需额外的空格和了preg_replace,我终于得到它的工作使用mb_convert_encoding
mb_convert_encoding(pack('H*', $hexstring), 'ASCII', 'UCS-2');
我试过了preg_replace('\ S(? !\ s)','',$ string),我得到以下错误,分隔符不能是字母数字或反斜杠 – sulaiman
您需要使用分隔符。我以为你知道如何使用它们?我将在我的答案中加入一些用法 – Jerry
@sulaiman请参阅编辑答案和[viper-7](http://viper-7.com/EaKCCU)演示。 – Jerry