繁体   English   中英

在C#中使用Regex从Outlook电子邮件正文中删除单词超链接和url

[英]Use Regex in C# to remove the word hyperlink and the url from the body of an Outlook email

我需要使用Regex从存储在名为body的字符串的电子邮件正文中删除单词HYPERLINK“ http://someUrl.com ”。

Outlook电子邮件始终包含单词HYPERLINK(大写),一个空格和两个引号,其中包含各种链接。 我想我可以键入大写单词-HYPERLINK和结尾的引号-“以删除链接。

这是我必须删除单词HYPERLINK-的代码

        Regex regx = new Regex(@"\bHYPERLINK\b");
        body = regx.Replace(body, "");

我只是找不到一个好的正则表达式示例来删除HYPERLINK和尾随引号之间的通配符。

要使用正则表达式解决此问题,您需要使用捕获组:

static string FixHyperlinks(string source)
{
    const string pattern = "HYPERLINK \"([^\"]+)\"";

    return Regex.Replace(source, pattern, m => m.Groups[1].Value);
}

该模式匹配整个包装的URL,但是您使用一个组来隔离核心URL,然后仅使用组值替换原始的整个匹配项。

编辑:

通过阅读上述问题的注释,如果您想完全删除URL,而不仅仅是HYPERLINK“”包装器,则可以对整个匹配项进行替换:

static string FixHyperlinks(string source)
{
    const string pattern = "HYPERLINK \"([^\"]+)\"";

    return Regex.Replace(source, pattern, "");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM