我正在尝试从字符串中替换这些[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;
操作方法
我正在尝试从字符串中替换这些[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;
操作方法
您可以删除所有带变音符号的数字(您共享的所有数字实际上都是带变音符号的数字):
preg_replace('/[0-9]\p{M}+/u','',$post)
[0-9]
将匹配从0
到9
的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