在String中搜索某个特定内容,然后删除某个特定点到列表

时间:2011-04-01 16:15:30

标签: c# string search

我正在开发一种供个人使用的自动下载程序,到目前为止,我已设法将程序设置为存储提供给字符串的链接源,下载链接以纯文本形式写入来源,那么我需要做的是,搜索一个字符串,例如“http://media.website.com/folder/”并让它将所有出现的内容返回到列表中?问题是,我还需要在/ folder /“之后为每个文件提供唯一的id,以及上面出现的每个文件,任何想法?我使用Visual C#。

感谢!!!

史蒂芬

3 个答案:

答案 0 :(得分:0)

也许是这样的?

        Dictionary<string, string> dictionary = new Dictionary<string, string>();

        string searchText = "Text to search here";
        string textToFind = "Text to find here";
        string fileID = "";

        bool finished = false;
        int foundIndex = 0;

        while (!finished)
        {
            foundIndex = searchText.IndexOf(textToFind, foundIndex);

            if (foundIndex == -1)
            {
                finished = true;
            }
            else
            {
                //get fieID, change to whatever logic makes sense, in this example
                //it assumes a 2 character identifier following the search text
                fileID = searchText.Substring(foundIndex + searchText.Length, 2);

                dictionary.Add(fileID, textToFind);
            }
        }

答案 1 :(得分:0)

使用Regex获取匹配项,这将为您提供所有匹配项的列表。使用通配符作为匹配项之间不同的数值,因此您可以解析它。

我对Regex不太满意,但它就像是,

Regex.Match(<your string>,@"(http://media.website.com/folder/)(d+)")

答案 2 :(得分:0)

或者

var textToFind = "http://media.website.com/folder/";
var ids = from l in listOfUrls where l.StartsWith(textToFind) select new { RawUrl = l, ID=l.Substring(textToFind.Length)}