在匹配时抓取一部分文本,摆脱其余部分,因为它没用

时间:2011-10-21 08:24:48

标签: c# asp.net string text

我有一个名为

的文字
string path = "Default/abc/cde/css/";

我想比较文字。

string compare = "abc";

我想要一个结果

string result = "Default/abc";

路径/cde/css的其余部分是无用的。是否有可能在asp.net c#中获取所需的结果。感谢。

4 个答案:

答案 0 :(得分:1)

试试这个。这将遍历不同的级别(假设这些是目录级别),直到它与compare匹配,然后退出循环。这意味着如果有一个名为abcd的文件夹,则不会结束循环。

string path = "Default/abc/cde/css";
string compare = "abc";
string result = string.Empty;
foreach (string lvl in path.Split("/")) {
    result += lvl + "/";
    if (lvl == compare)
    {
        break;
    }
}
if (result.Length>0)
{
   result = result.substring(0, result.length-1);
}

答案 1 :(得分:1)

这是你要找的吗?:

string result = path.Substring(0, path.IndexOf(compare)+compare.Length);

答案 2 :(得分:0)

string path = "Default/abc/cde/css/";
string answer = "";
string compare = "abc";

if (path.Contains(compare ))
{
     answer = path.Substring(0, path.IndexOf(stringToMatch) + compare.Length);
}

像上面这样的东西应该有效。

答案 3 :(得分:0)

我建议如果你将来遇到这类问题,你应该先自己尝试一下。

string result = path.Contains(compare) ? path.Substring(0, (path.IndexOf(compare) + compare.Length)) : path;