选择uri的特殊部分,其中不包含特殊字符

时间:2017-11-03 08:53:04

标签: c#

我有这样的网址www.example.com/e24/konfigurace-obchodnich-partneru/+bb.ddd@ttt.com。我正在寻找一个函数,它提取这个uri的片段,但不包括由电子邮件地址组成的片段。像这样:

  • www.example.com
  • E24
  • konfigurace-obchodnich-partneru

而不是+bb.ddd@ttt.com。我知道我可以使用数组和正则表达式,但我在C#中寻找一个特殊的函数。我找到了uri class。但它对我没有帮助。你是什​​么意思?

1 个答案:

答案 0 :(得分:1)

由于您正在寻找的电子邮件样式段的URI格式没有特殊含义,因此您将找不到此特定部分的内置函数。 URI不关心其路径段的内容,只关心它们的有效性。

最简单的方法是使用Uri类,如您所见,使用Segments属性提取路径段,并检查每个段是否与电子邮件格式匹配(即一整个'其他水壶鱼。)

var uri = new Uri("http://www.example.com/e24/konfigurace-obchodnich-partneru/+bb.ddd@ttt.com");
foreach (var segment in uri.Segments.Where(seg => !seg.Contains("@")))
{
    Console.WriteLine(segment);
}