Open3
Swift: Stringから絵文字を除外する

Geminiからの応答を読み上げる処理を作っていますが、こいつ、答えに絵文字を入れてきよるのです。
私:回答から絵文字を除外してください
Gemini:了解しました! 今後、回答から絵文字を除外して答えますね。 😊
ギャクかよ…
ともかく、上記の回答を読み上げると、絵文字の部分も読み上げてしまってかなり邪魔くさいんですね。
let text = "了解しました! 今後、回答から絵文字を除外して答えますね。 😊"
var emojiRemoved = text
emojiRemoved.removeAll(where: { character in
for scalar in character.unicodeScalars {
if scalar.properties.isEmoji {
return true
}
}
return false
})
文字(キャラクタ)は合字の場合があるので、1文字が複数スカラー値で構成されていることがあります。
「1️⃣」のような奴ですね。
そのスカラー値が1個でも絵文字の場合は、その文字全体を絵文字としてみなす、というようなことにしています。

これダメですね。数字に対してisEmoji
がtrue
になります。

にscalar.value
が0x203c
以上という条件も追加しろって書いてあります。
let text = "了解しました! 今後、回答から絵文字を除外して答えますね。 😊"
var emojiRemoved = text
emojiRemoved.removeAll(where: { character in
for scalar in character.unicodeScalars {
if scalar.properties.isEmoji && 0x203c <= scalar.value {
return true
}
}
return false
})
ですね。