簡體   English   中英

替換 PHP 中的 UTF-8 KeyCap 數字字符

[英]Replacing UTF-8 KeyCap Digit Character in PHP

我正在嘗試從字符串中替換這些 [0️⃣1️⃣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]將匹配從09的 ASCII 數字,而\p{M}+匹配 1 個或多個變音符號。 因此,不會刪除常規 ASCII 數字。

查看正則表達式演示

我不確定你需要什么結果。

鍵的一到九是“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;

Output:

123🗡️abcx8x🗡️56

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM