gpt4 book ai didi

c# - 在 C# 字符串中摆脱零宽度空间的最简单方法

转载 作者:太空狗 更新时间:2023-10-29 20:58:35 25 4
gpt4 key购买 nike

我在 c# VSTO 项目中使用正则表达式解析电子邮件。有时,正则表达式似乎不起作用(尽管如果我将文本和正则表达式粘贴到 regexbuddy 中,则正则表达式会正确匹配文本)。如果我查看 gmail 中的电子邮件,我会看到

=E2=80=8B

在某些行的开头和结尾(我理解的是UTF8零宽度空间);这似乎是搞乱正则表达式的原因。这似乎只是出现的序列。

摆脱这个确切序列的最简单方法是什么?我不能做显而易见的事情

MailItem.Body.Replace("=E2=80=8B", "")

因为这些字符不会出现在 c# 字符串中。

我也试过

byte[] bytes = Encoding.Default.GetBytes(MailItem.TextBody);
string myString = Encoding.UTF8.GetString(bytes);

但是零宽度空格只显示为 ?。我想我可以遍历字节数组并删除包含零宽度空间的字节,但我不知道字节会是什么样子(它似乎不像将 E2 80 8B 转换为十进制并搜索那样简单) .

最佳答案

由于 C# 中的字符串以 Unicode(而非 UTF-8)格式存储,因此以下内容可能会起到作用:

MailItem.Body.Replace("\u200B", "");

关于c# - 在 C# 字符串中摆脱零宽度空间的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24942167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com