Как удалить определенную часть строки? - PullRequest
15 голосов
/ 15 марта 2011

У меня есть эта строка: "NT-DOM-NV \ MTA" Как я могу удалить первую часть: "NT-DOM-NV \" Чтобы получить это как результат: "MTA"

Как это возможно с RegEx?

Ответы [ 8 ]

42 голосов
/ 15 марта 2011

вы можете использовать

str = str.SubString (10); // to remove the first 10 characters.
str = str.Remove (0, 10); // to remove the first 10 characters
str = str.Replace ("NT-DOM-NV\\", ""); // to replace the specific text with blank

// to delete anything before \

int i = str.IndexOf('\\');
if (i >= 0) str = str.SubString(i+1);
10 голосов
/ 15 марта 2011

Учитывая, что "\" всегда появляется в строке

var s = @"NT-DOM-NV\MTA";
var r = s.Substring(s.IndexOf(@"\") + 1);
// r now contains "MTA"
6 голосов
/ 15 марта 2011
string.TrimStart(what_to_cut); // Will remove the what_to_cut from the string as long as the string starts with it.  

"asdasdfghj".TrimStart("asd" ); приведет к "fghj".
"qwertyuiop".TrimStart("qwerty"); приведет к "uiop".


public static System.String CutStart(this System.String s, System.String what)
{
    if (s.StartsWith(what))
        return s.Substring(what.Length);
    else
        return s;
}

"asdasdfghj".CutStart("asd" ); теперь приведет к "asdfghj".
"qwertyuiop".CutStart("qwerty"); все равно приведет к "uiop".

4 голосов
/ 15 марта 2011

Если всегда есть только одна обратная косая черта, используйте это:

string result = yourString.Split('\\').Skip(1).FirstOrDefault();

Если их может быть несколько и вы хотите иметь только последнюю часть, используйте это:

string result = yourString.SubString(yourString.LastIndexOf('\\') + 1);
1 голос
/ 15 марта 2011

Попробуйте

string string1 = @"NT-DOM-NV\MTA";
string string2 = @"NT-DOM-NV\";

string result = string1.Replace( string2, "" );
0 голосов
/ 21 августа 2017
Regex.Replace(@"NT-DOM-NV\MTA", @"(?:[^\\]+\\)?([^\\]+)", "$1")

попробуйте здесь .

0 голосов
/ 14 августа 2017

Вы можете использовать этот метод расширения:

public static String RemoveStart(this string s, string text)
{
    return s.Substring(s.IndexOf(s) + text.Length, s.Length - text.Length);
}

В вашем случае вы можете использовать его следующим образом:

string source = "NT-DOM-NV\MTA";
string result = source.RemoveStart("NT-DOM-NV\"); // result = "MTA"

Примечание: не используйте метод TrimStart, так как он может обрезать еще один или несколько символов ( см. Здесь ).

0 голосов
/ 15 марта 2011
 string s = @"NT-DOM-NV\MTA";
 s = s.Substring(10,3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...