Захватите часть текста, когда он совпадает, избавьтесь от остального, потому что это бесполезно

#c# #asp.net #string #text

#c# #asp.net #строка #текст

Вопрос:

У меня есть текст под названием

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

Я хочу сравнить текст.

 string compare = "abc";
  

Я хочу результат

 string result = "Default/abc";
  

Остальная часть пути /cde/css бесполезна.Возможно ли получить желаемый результат в asp.net c#. Спасибо.

Ответ №1:

Это то, что вы ищете?:

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

Ответ №2:

Попробуйте это. Это будет проходить через разные уровни (при условии, что это уровни каталогов), пока он не будет соответствовать 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);
}
  

Ответ №3:

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

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

Должно сработать что-то вроде описанного выше.

Ответ №4:

Я полагаю, что если вы столкнетесь с подобными вопросами в будущем, вам следует сначала попробовать это самостоятельно.

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