c# - 使用正则表达式替换 MS Outlook html 源字符串?

标签 c# .net html regex replace

我有一个应用程序可以读取源 html 并下载电子邮件的所有附件。这工作正常,除了 Microsoft Outlook 有一些奇怪的源值,例如......

<img width="163" height="39" id="Picture_x0020_1" src="cid:image001.png@01CD7F6C.70CD2320" alt="Description: Description: Description: cid:image001.png@01CC6D59.AEF6D270">

首先,我想将其更改为仅 Attachments\image001.png 作为源。此外,alt 应该只是 image001.png,而不是这个长而奇怪的 alt。不太确定该怎么做。

最佳答案

您应该使用正则表达式(我更新了您问题中的标签以反射(reflect)这一点):

Regex.Replace(text, @"src=""cid:(?<FileName>[^@]+)@[^""]*""", @"src=""Attachments\${FileName}""",
    RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
Regex.Replace(x, @"alt=""[^.]*cid:(?<FileName>[^@]+)@[^""]*""", @"alt=""${FileName}""",
    RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);

我确信有更有效的方法可以做到这一点,但这就是我能想到的。

关于c# - 使用正则表达式替换 MS Outlook html 源字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12096866/

相关文章:

c# - TAP的多任务处理

c# - 符号 <> 在 MSIL 中是什么意思?

c# mashal const std::list<object> 来自 c++ dll

c# - LINQ:如何选择子节点满足条件的项目元素?

c# - 键值对数据结构的最佳实现?

html - CSS:新 CSS 网格的全宽背景

javascript - jQuery 根据下拉列表中的选择将行移动到另一个表

php - 如何修复 while 循环中生成的多个 div 中的间隙?

c# - 我有一个长时间运行的进程,我在服务总线队列中调用它。我希望它持续超过 5 分钟

c# - 列表框触摸滚动性能