我有一根绳子:-
Hi, Jax\ud83d\ude1b\ud83d\ude44! can we go for a coffee?现在,表情符号是在UTF16(我想)。我需要提取'\ud83d\ude1b\ud83d\ude44‘,并在每对之间留出一个空间,如下所示。
Hi, Jax\ud83d\ude1b \ud83d\ude44! can we go for a coffee?如何在PHP中实现这一点?
我需要更多的例子:-
Hi, Jax\ud83d\ude1b \ud83d\ude44! can we go for\ud83d\ude1b \ud83d\ude44 a coffee?所以我们需要做的是:-
Jax\ud83d\ude1b和Jax \ud83d\ude1b。发布于 2016-08-30 10:17:28
我不确定你想要什么,但这说明了如何(1)和(2)。
$input = 'Hi, Jax\ud83d\ude1b\ud83d\ude44! can we go for a coffee?';
$pattern = '/((?:\\\\u[\dA-F]{4}){2})/i';
preg_match_all ( $pattern , $input , $mtchs);
print_r($mtchs);我不太会说php,但是preg_match_all将所有的表情提取到数组- $mtchs (1)中。
然后,对于(2),preg_replace在它们之间插入一个空格,如果有背靠背的表情符号(或者更确切地说,*两个unicode字母,后面跟着另一个- \u)。
$pattern = '/((?:\\\\u[\dA-F]{4}){2})(\\\\u)/i';
print_r(preg_replace($pattern, '$1 $2', $input));https://stackoverflow.com/questions/39224001
复制相似问题