172 похожих чатов

Не подскажите, как можно в строке находить (и заменять) эмоджи?

(включая те, которые из нескольких char состоят)

Т.е. мне нужно условное "ахаха 👍😳😘" превратить в "ахаха abc"

Я так понимаю что руками костылить нереально в данном случае

19 ответов

57 просмотров

ну нужно на кодпоинты разбить и найти либу которая умеет проверять что is_emoji

еще смотри, эмодзи 👨‍👨‍👧‍👧 модержит четыре эмодзи и три специальных знака между ними:👨👩👧👧 что в этом случае нужно делать?

в общем на тебе крейт https://docs.rs/unic-emoji-char/0.9.0/unic_emoji_char/index.html который может для char определить эмодзи это или нет если тебе нужно именно полные глифы разбирать, то ищи сам, это мрак

вафель-🧇🍓 Автор вопроса
вафель 🧇🍓
заменять все как один

Тогда могу только посочувствовать. Только что прогуглил два раза, ничего не нашел, все предлагают писать рукописные решения))

use unicode_segmentation::UnicodeSegmentation; use std::borrow::Cow; fn replace_emoji<'a, F: FnMut(&'a str) -> Cow<'a, str>>(string: &'a str, mut f: F) -> String { string.graphemes(true) .map(|g| match g.chars().next().map(|c| c as u32) { | Some(0x1D000..=0x1F77F) | Some(0xFE00..=0xFE0F) | Some(0x1F900..=0x1F9FF) | Some(0x3030) | Some(0x00AE) | Some(0x00A9) | Some(0x2100..=0x27BF) => f(g), _ => Cow::Borrowed(g) }) .collect::<String>() } fn main() { let string = "ахаха 👍😳😘 👨‍👨‍👧‍👧"; println!("{}", string); let mut i = 0; let sanitazed = replace_emoji(string, |_| { let result: char = unsafe { std::mem::transmute('a' as u32 + i) }; i += 1; Cow::Owned(format!("{}", result)) }); println!("{}", sanitazed); }

вафель-🧇🍓 Автор вопроса
вафель 🧇🍓
А откуда ренджи?

ну что за глупые вопросы? :D https://stackoverflow.com/a/36258684/2559709

вафель 🧇🍓
Спасибо!

правда я не все ренжи скопировал. Отвлекли по работе) Но смысл такой же. Пожалуйста

Αλεχ Zhukovsky
ну что за глупые вопросы? :D https://stackoverflow...

о, свифт норм язык https://developer.apple.com/documentation/swift/unicode/scalar/properties/3081577-isemoji

вафель-🧇🍓 Автор вопроса
Roma S
о, свифт норм язык https://developer.apple.com/doc...

> // 0 --> true немного не то что я бы хотел

Roma S
о, свифт норм язык https://developer.apple.com/doc...

щас бы о япе судить о тому кто сколько фунок в стд напихал :D Ну и 0 -> true это рофл конеш

Αλεχ Zhukovsky
щас бы о япе судить о тому кто сколько фунок в стд...

там ещё @escaping/@noescape тема прикольная. но то что решают насущные вопросы это тоже хорошо!

вафель-🧇🍓 Автор вопроса
Αλεχ Zhukovsky
use unicode_segmentation::UnicodeSegmentation; use...

Это с 3️⃣ не работает :/ Вот и пришло время обновлять код хд

вафель-🧇🍓 Автор вопроса
red75prime
https://t.me/rustlang_ru/346028

я скопировал остальные тоже

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта