在PHP中替换UTF-8 KeyCap数字字符

我正在尝试从字符串中替换这些[0️⃣1️⃣2️⃣2️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣?] UTF字符。但是,所有其他数字字符也都被替换了。 我尝试使用按范围替换。 这是我尝试过的

$post = '  ?️7️⃣8️⃣6️⃣?️  ';

$post = preg_replace('/[\x{0030}-\x{0040}]/u','',$post);

echo $post;

操作方法

biyesheng630 回答:在PHP中替换UTF-8 KeyCap数字字符

您可以删除所有带变音符号的数字(您共享的所有数字实际上都是带变音符号的数字):

preg_replace('/[0-9]\p{M}+/u','',$post)

[0-9]将匹配从09的ASCII数字,而\p{M}+匹配1个或多个变音符号。因此,常规的ASCII数字将不会被删除。

请参见regex demo

,

我不确定您需要什么结果。

键的1到9是“ 5 \ u {fe0f} \ u {20e3}”的组合方式。密钥十是Unicode符号“ \ u {1f51f}”。如果仅要删除这些符号,则必须执行以下操作:

$post = '123?️0️⃣1️⃣2️⃣2️⃣3️⃣abc4️⃣x8x5️⃣6️⃣7️⃣8️⃣9️⃣??️56';

$post = preg_replace('~[0-9]\x{fe0f}\x{20e3}|\x{1f51f}~u',$post);

echo $post;

输出:

123?️abcx8x?️56
本文链接:https://www.f2er.com/2356272.html

大家都在问