0

我只想从例如两个点之间的文本框中获取文本。万维网。abc.org。H

4

5 回答 5

2

在 C# 中

string url = "www.google.com";
string[] split_strings = url.Split('.');
Console.WriteLine(split_strings[1]); 

从文本框中获取字符串:

string url = textbox_url.Text;
string[] split_strings = url.Split('.');
Console.WriteLine(split_strings[1]); 

但是请使用 try and catch ;)

于 2009-05-18T11:01:40.190 回答
1

我认为你的问题需要更具体一点。现在,如果您只是想提取地址的中间部分,如下所示应该可以完成这项工作:

var parts = textbox.Text.Split(new char[] {'.'});
if (parts.Length < 3) throw new InvalidOperationException("Invalid address.");
var middlePart = parts[1];
于 2009-05-18T11:01:56.540 回答
0

字符串干草堆=“www.google.com”;字符串针=“谷歌”;

        string myWord = GetWordFromString(haystack, needle);

        private string GetWordFromString(string haystack, string needle)
        {
           if (haystack.ToLower().Contains(needle))
           {
               return needle;
           }
        }

我重新阅读了带有评论的帖子,我可以看到您可能不知道要提取什么单词...我认为第一个答案是您正在寻找的答案。

如果这是您的特定需要,还有用于从 url 中提取域名的正则表达式。像这样的东西:

    public static string ExtractDomainName(string Url)
    {
        return System.Text.RegularExpressions.Regex.Replace(
        Url,
        @"^([a-zA-Z]+:\/\/)?([^\/]+)\/.*?$",
        "$2"
        );
    } 
于 2009-05-18T11:03:17.193 回答
0

这和你的要求一样具体吗?

它只需要为 www.SOMESITE.com 工作吗

.net、.org、.co.uk、.ie 等其他 tld 扩展名呢?其他子域呢,例如 www2.、api.、新闻。等等......没有子域的域怎么样,google.com,theregister.co.uk,bit.ly

如果你的要求很简单,

然后

textBox.Text.Replace("www.", "").Replace(".com", "");

尽管我感觉您尚未考虑或完全解释您的要求。

如果是更复杂的场景,您可能需要查看正则表达式。

于 2009-05-18T11:03:22.090 回答
0
string text = "www. abc.org . h";
int left = Math.Max(text.IndexOf('.'), 0),
   right = Math.Min(text.LastIndexOf('.'), text.Length - 1);

string result = text.Substring(left+1, right - left-1).Trim();
于 2009-05-18T11:23:36.137 回答