-1

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

" g e t  s m h "

但结果应该是,

"get smh"

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

4

3 回答 3

2

尝试以下操作:

\s(?!\s)

并一无所有。

\s(?!\s)将匹配每个空白字符(以及换行符和回车符以及换页符和制表符,但如果它是单行,这应该不是问题)除非它们后面跟着另一个空格字符,因此在“”(2个空格)中,只有第二个空格被什么东西代替了。

你像这样使用它:

$newstring = preg_replace('/\s(?!\s)/', '', $oldstring);
于 2013-09-26T11:53:19.483 回答
0

Try This. hop it will work

$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;
于 2013-09-26T12:07:52.390 回答
0

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

mb_convert_encoding(pack('H*', $hexstring), 'ASCII', 'UCS-2');
于 2013-09-26T16:58:42.757 回答