我得到了下面的字符串,從解碼十六進制字符串的結果,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