Невозможно использовать регулярные выражения, чтобы делать то, что я хочу.Я смог использовать unicode.net и циклически проходить по кодовым точкам, чтобы получить все необходимые мне элементы Юникода.
var seq = "hello ? ?️?️ world".Codepoints();
foreach(var cp in seq)
{
if(cp.AsUtf32 < 127)
{
sb.Append(cp.AsString());
}
else
{
sb.Append(cp.ToString().Replace("U+", "") + " ");
}
}
sb.ToString().Dump();
Вывод: hello 1F601 1F441 FE0F 200D 1F5E8 FE0F world