.net 如何从整个字符串中提取特定的字符集并保存到数组或列表中?

rdlzhqv9  于 2023-07-01  发布在  .NET
关注(0)|答案(1)|浏览(90)

我有一个字符串,里面有Unicode,我试图从整个字符串中提取每个Unicode,并将其保存到列表/数组中。
这是整个字符串:

"test 🔷 test 💙 test 🔹"

我想要以下列表:

1. 🔷 2. 💙 3. 🔹

现在我正在尝试以下操作:

string[] emojiSeparators = new string[] { "&#", ";" };
string[] resultEmojis;

resultEmojis = noHtmlEmoji.Split(
  emojiSeparators, StringSplitOptions.RemoveEmptyEntries);

但是我得到的单词"test"添加到列表中,如下所示:

我只想把unicodes保存到我的列表中,这样我就可以迭代它们并做一些事情。

x8diyxa7

x8diyxa71#

我建议使用 * 正则表达式 * 进行 * 匹配 *:

using System.Linq;
using System.Text.RegularExpressions;

...

string[] resultEmojis = Regex
  .Matches(noHtmlEmoji, @"&#[1-9][0-9]{5}(?=;)")
  .Cast<Match>()
  .Select(match => match.Value)
  .ToArray();

模式&#[1-9][0-9]{5}(?=;)解释:

&#       - &# characters
[1-9]    - digit in 1..9 range
[0-9]{5} - 5 digits in 0..9 range
(?=;)    - ; character which is not included into the match

Fiddle

相关问题