php - 删除额外的空格

时间:2013-09-26 11:50:20

标签: php regex preg-replace

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

" g e t  s m h "

但结果应该是,

"get smh"

我相信它可以使用preg_replace完成,但我不知道正则表达式。好心提醒。感谢。

3 个答案:

答案 0 :(得分:2)

尝试以下方法:

\s(?!\s)

一无所获。

\s(?!\s)将匹配每个空格字符(以及换行符和回车符以及换页符和制表符,但如果它是单行,这应该不是问题),除非它们后跟另一个空格字符,以便“”(2个空格),只有第二个空格被替换为空。

你这样使用它:

$newstring = preg_replace('/\s(?!\s)/', '', $oldstring);

答案 1 :(得分:0)

试试这个。跳它会工作

$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;

答案 2 :(得分:0)

如果有人发现这个将十六进制转换为字符串而没有额外的空格和preg_replace,我终于可以使用mb_convert_encoding

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