【问题标题】:Regular expression to find a string included between two characters正则表达式查找包含在两个字符之间的字符串
【发布时间】:2014-11-06 00:12:11
【问题描述】:

我真的不擅长正则表达式,并且想使用 c# 解析电子邮件地址。

如果我的输入是user@domain.me.com,我将使用什么正则表达式来仅提取“域”部分?可以有多个不同长度的域。

【问题讨论】:

  • 那么,您想要@ 和以下. 之间的文本吗?
  • 您可以通过几种不需要RegEx 的方式执行此操作,例如您是否熟悉IndexOf() 方法或Split() 方法..?
  • 是的,@ 和下面的文字之间的文字。
  • 我没有使用任何一种方法。但我也会调查这些。
  • Raj 这里还有一些其他很好的例子。stackoverflow.com/questions/16473838/… 还有GOOGLE.COM 是你最好的朋友使用它。

标签: c# regex


【解决方案1】:

使用正则表达式解析电子邮件并非易事,因为有效电子邮件的规则很复杂;幸运的是,您不需要:您可以改用 MailAddress 类。

var address = new MailAddress("user@domain.me.com");
string domain = address.Host.Split('.')[0];

【讨论】:

    【解决方案2】:

    使用正面的后视查找@,然后抓取文本直到.

    (?<=@)[^\.]+

    在您可以使用的代码中:

    var str = "user@domain.me.com";
    var domain = Regex.Match(str, @"(?<=@)[^\.]+").Groups[0].ToString();
    

    我想你会想要检查你的匹配项以确保找到匹配项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-15
      • 2012-05-19
      • 1970-01-01
      • 2022-01-23
      • 2019-05-19
      • 1970-01-01
      • 2020-01-22
      相关资源
      最近更新 更多