javascript — соответствующие эмодзи в C #

Соответствие смайликов в C #

Я пытаюсь найти способ отфильтровать смайлики из текстовых файлов utf8. Очевидно, существует регулярное выражение javascript ( https://raw.githubusercontent.com/mathiasbynens/emoji-regex/master/index.js ), которое можно использовать для соответствия смайликам. Я не мог перевести это регулярное выражение на диалект c # (похоже, есть некоторые различия, которые я не понимаю). Затем я попытался выполнить следующий простой код, чтобы сопоставить все несловесные и непробельные символы в моих текстах (чтобы просмотреть их вручную и выбрать эмодзи, затем поместить их в регулярное выражение и заменить их пустой строкой).

 string input = @"some path"; List{amp}lt;char{amp}gt; emojis = new List{amp}lt;char{amp}gt;(); foreach(FileInfo file in new DirectoryInfo(input).GetFiles("*.txt", SearchOption.AllDirectories)) { MatchCollection matches = Regex.Matches(File.ReadAllText(file.FullName), @"[^ws]{1}"); foreach(Match match in matches) { string value = match.Value; foreach(char c in value.ToCharArray()) { if(!emojis.Contains(c)) { emojis.Add(c); } } } } foreach(char c in emojis) { File.AppendAllText(@"\Emojis.txt", c.ToString() "|"); } 

Но я получаю исключение в #develop

System.Text.EncoderFallbackException: невозможно преобразовать символ Unicode uD83D с индексом 0 в указанную кодовую страницу.

Видимо, не очень хорошая идея преобразовывать символы, соответствующие регулярному выражению, в символы. Любые идеи, как я могу это исправить? С уважением

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector