[c#] URIからPROTOCOLを削除する方法



1 Answers

一般的な意味で(http / httpsに限定されない)、(絶対)uriは常にスキームの後にコロンとスキーム固有のデータが続くものです。 だから、唯一の安全なことは、計画で削減されています:

    string s = "http://stackoverflow.com/questions/4517240/";
    int i = s.IndexOf(':');
    if (i > 0) s = s.Substring(i + 1);

httpやその他のいくつかの場合、 .TrimStart('/').TrimStart('/')たいかもしれませんが、これはスキームの一部ではなく、存在することが保証されていません。 簡単な例: about:blank

Question

どのようにしてURIからプロトコルを削除できますか? つまりHTTPを削除する




このためにRegExを使うことができます。 以下のサンプルはあなたの必要性を満たすでしょう。

    using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      string txt="http://www.google.com";

      string re1="((?:http|https)(?::\\/{2}[\\w]+)(?:[\\/|\\.]?)(?:[^\\s\"]*))";    // HTTP URL 1

      Regex r = new Regex(re1,RegexOptions.IgnoreCase|RegexOptions.Singleline);
      Match m = r.Match(txt);
      if (m.Success)
      {
            String httpurl1=m.Groups[1].ToString();
            Console.Write("("+httpurl1.ToString()+")"+"\n");
      }
      Console.ReadLine();
    }
  }
}

これが役に立ったら教えてください




Related



Tags

c# c#   asp.net asp.net