gpt4 book ai didi

c# - 如何在 C# 中使用正则表达式匹配字符串

转载 作者:行者123 更新时间:2023-12-03 03:59:12 27 4
gpt4 key购买 nike

我有这个字符串Sample Text <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a9ddccdadde9ddccdadd87cac6c4" rel="noreferrer noopener nofollow">[email protected]</a>>和这个字符串 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="91e5f4e2e5d1e5f4e2e5bff2fefc" rel="noreferrer noopener nofollow">[email protected]</a>我尝试匹配前面的文本(本示例中的“示例文本”)(如果存在)以及不带“<”、“>”字符的电子邮件。前后可能有空格。起初我使用 Regex.Split 和这个表达式 @"\s*(.*)<(.*@.*)>\s*"但它给了我 4 个字符串而不是 2 个。我想要的 2 个字符串是正确的,但它也返回了空字符串。现在我正在尝试使用此表达式 @"\s*(.*)(?: <)?(.*@.*)(?:>)?\s*" 进行 Regex.Matches它找到 3 个匹配项。这两个也是正确的,另一个是输入字符串本身。至于第二根弦,它不起作用。我该如何解决这个问题?

最佳答案

这可以在没有正则表达式的情况下完成。看看 MailAddress 类(class);它可用于解析字符串,如您的示例所示:

var mailAddress = new MailAddress("Sample Text <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8ffbeafcfbcffbeafcfba1ece0e2" rel="noreferrer noopener nofollow">[email protected]</a>>");

这里mailAddress.Address属性将包含<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="186c7d6b6c586c7d6b6c367b7775" rel="noreferrer noopener nofollow">[email protected]</a>值,和mailAddress.DisplayName将包含Sample Text值。

关于c# - 如何在 C# 中使用正则表达式匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929695/

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