Reputation: 10365
I have this string: "NT-DOM-NV\MTA" How can I delete the first part: "NT-DOM-NV" To have this as result: "MTA"
Upvotes: 38
Views: 156947
Reputation: 6911
you can use this code:
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);
Upvotes: 67
Reputation: 93
Regex.Replace(@"NT-DOM-NV\MTA", @"(?:[^\\]+\\)?([^\\]+)", "$1")
try it here.
Upvotes: 1
Reputation: 3698
You can use this extension method:
public static String RemoveStart(this string s, string text)
{
return s.Substring(s.IndexOf(s) + text.Length, s.Length - text.Length);
}
In your case, you can use it as follows:
string source = "NT-DOM-NV\MTA";
string result = source.RemoveStart("NT-DOM-NV\"); // result = "MTA"
Note: Do not use TrimStart
method as it might trims one or more characters further (see here).
Upvotes: 2
Reputation: 9141
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" );
will result in "fghj"
.
"qwertyuiop".TrimStart("qwerty");
will result in "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" );
will now result in "asdfghj"
.
"qwertyuiop".CutStart("qwerty");
will still result in "uiop"
.
Upvotes: 11
Reputation: 17176
Given that "\" always appear in the string
var s = @"NT-DOM-NV\MTA";
var r = s.Substring(s.IndexOf(@"\") + 1);
// r now contains "MTA"
Upvotes: 12
Reputation: 60744
Try
string string1 = @"NT-DOM-NV\MTA";
string string2 = @"NT-DOM-NV\";
string result = string1.Replace( string2, "" );
Upvotes: 4
Reputation: 174457
If there is always only one backslash, use this:
string result = yourString.Split('\\').Skip(1).FirstOrDefault();
If there can be multiple and you only want to have the last part, use this:
string result = yourString.SubString(yourString.LastIndexOf('\\') + 1);
Upvotes: 2