删除多余的空格


remove extra whitespace

我得到了以下字符串,将十六进制解码为字符串的结果,

" 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的字符串,我终于可以使用mb_convert_encoding

mb_convert_encoding(pack('H*', $hexstring), 'ASCII', 'UCS-2');